Wie kann ich testen, dass eine bestimmte Methode mit den richtigen Parametern als Ergebnis eines Tests aufgerufen wurde? Ich benutze NUnit .
Die Methode gibt nichts zurück. es schreibt nur in eine Datei. Ich verwende ein Mock-Objekt für System.IO.File
. Ich möchte also testen, ob die Funktion aufgerufen wurde oder nicht.
Mehr Kontext ist notwendig. Also werde ich hier eine hinzufügen, Moq zum Mix:
%Vor%Sie müssen ein spöttisches Framework verwenden, wie zB Typemock oder Rhino Mocks oder NMocks2 .
NUnit hat auch einen Nunit.Mock , aber es ist nicht bekannt.
Die Syntax für moq finden Sie hier :
%Vor% Beachten Sie auch, dass Sie nur Schnittstelle vortäuschen können. Wenn Ihr Objekt von System.IO.File
also keine Schnittstelle hat, können Sie das wahrscheinlich nicht tun. Sie müssen Ihren Aufruf in System.IO.File
innerhalb Ihrer eigenen benutzerdefinierten Klasse für den Job umbrechen.
Indem Sie einen Schein für eine Schnittstelle verwenden.
Angenommen, Sie haben Ihre Klasse ImplClass
, die die Schnittstelle Finder
verwendet, und Sie möchten sicherstellen, dass die Funktion Search
mit dem Argument "Hallo" aufgerufen wird;
Wir haben also:
%Vor%und
%Vor%Dann können Sie einen Mock für Ihren Testcode schreiben
%Vor%dann der Testcode:
%Vor%In Rhino Mocks ist eine Methode namens AssertWasCalled
Hier ist eine Möglichkeit, es zu benutzen