Übergeben von Parametern an TestDelegate in NUnit

8

Ich versuche, eine Methode zu erstellen, die ein Testdelegate oder Delegate übernimmt und Parameter an das Delegatobjekt übergibt. Das liegt daran, dass ich einen Test für eine Methode in Controllern erstelle, die alle denselben Parameter (eine ID) haben, und ich möchte keinen Test für alle Controller-Methoden erstellen.

Code, den ich habe:

%Vor%

Was ich gerne tun würde:

%Vor%

BEARBEITEN: Ich habe vergessen zu erwähnen, dass der Controller einen Rückgabewert hat. Daher kann Action nicht verwendet werden.

    
Stian Standahl 02.01.2013, 09:38
quelle

2 Antworten

10

Verwenden Sie Action<string> , um eine Methode zu übergeben, die einen einzelnen String-Parameter akzeptiert. Rufen Sie diese Aktion mit Ihren Testparametern auf:

%Vor%

Verwendung:

%Vor%

UPDATE:

Verwenden Sie Func<string, ActionResult> für Controller, die ActionResult zurückgeben. Sie können auch eine generische Methode für diesen Zweck erstellen.

    
Sergey Berezovskiy 02.01.2013, 09:51
quelle
1

Wie in der Bearbeitung erwähnt, hat der Controller einen Rückgabetyp. Daher musste ich von Action zu Func wechseln, und da ich es in einem Komponententest verwendete, musste ich ein temporäres Objekt erstellen, das die Funktion enthält.

Basierend auf lazyberezovsky's Antwort hier ist mein resultierender Code:

%Vor%

Der Komponententest ist dann:

%Vor%     
Stian Standahl 02.01.2013 11:19
quelle

Tags und Links