Ich setze eine Erwartung auf eine Methode, die ein Objekt als Parameter hat. Dieses Objekt wird innerhalb der aufgerufenen Funktionalität erstellt. Wenn ich dies verspotte, erhalte ich die Fehlermeldung "Expected # 1 Actual # 0"ASP.Net MVC - Rhino Mocks - Erwartete Methodenaufrufparameter
Wie kann ich das beheben?
Code:
Kundentestobject = new Kunde(); Expect.Call (sampleRepository.Find (testObject)). Zurück (True);
Ich vermute, dass die Schaffung eines neuen Objekts diese Erwartung scheitern lässt.
Bitte helfen.
Dank Patrick. Das hat gut funktioniert. Aber vom Standpunkt der Prüfung aus können wir davon ausgehen, dass Parameter erfolgreich empfangen werden. – Thanigainathan
Sie haben diesen Parameter angegeben, der an sampleRepository übergeben wird. Find() wird intern innerhalb der von Ihnen aufgerufenen Methode erstellt. Dies bedeutet, dass es sich um ein privates Implementierungsdetail handelt und nicht um etwas, das Sie testen sollten. Es wird dazu führen, dass Ihre Implementierung in Ihre Tests eindringt. Wenn Sie also die Implementierung ändern, werden Sie Ihre Komponententests durchbrechen. – PatrickSteele
Wenn Sie die an sampleRepository.Find() gesendeten Argumente wirklich überprüfen müssen, können Sie die Methode "GetArgumentsForCallsMadeOn" in Ihrem Beispielrepository-Mock verwenden. Es wird ein Array von Arrays zurückgegeben. Das erste Element [0] ist ein Array von Parametern, das beim ersten Aufruf der Methode aufgerufen wird, Element [1] ist ein Array von Parametern, das beim zweiten Aufruf der Methode aufgerufen wird, usw. – PatrickSteele