Moq testet die ungültige Methode

8

Hi, ich bin neu in Moq Tests und habe es schwer, eine einfache Behauptung zu machen. Ich benutze eine Schnittstelle

%Vor%

Moq für die Schnittstelle IAdd ist:

%Vor%

Da die Methode add ungültig ist, gibt sie keinen Wert zurück, für den Assert verwendet werden soll. Wie kann ich diese Einstellung bestätigen?

    
J. Davidson 25.02.2013, 07:56
quelle

2 Antworten

19

Warum wird gespottet? Es wurde verwendet, um zu überprüfen, ob SUT (zu testendes System) korrekt mit seinen Abhängigkeiten interagiert (was verspottet werden sollte). Korrekte Interaktion bedeutet, dass korrekte Abhängigkeitselemente mit korrekten Parametern aufgerufen werden.

Sie sollten niemals auf den von mock zurückgegebenen Wert festlegen. Das ist ein Dummy-Wert, der keine Beziehung zum Produktionscode hat. Der einzige Wert, den Sie geltend machen sollten, ist ein Wert, der von SUT zurückgegeben wird. SUT ist die einzige Sache, für die Sie Behauptungen schreiben sollten.

Auch sollten Sie niemals Schnittstellen testen . Weil es nichts zu testen gibt. Schnittstelle ist nur eine API-Beschreibung. Es hat keine Implementierung. Hören Sie also auf und überlegen Sie, welchen Code Sie hier testen? Ist das ein echter Code, der in Ihrer Anwendung ausgeführt wird?

Also sollten Sie IAdd interface nur für Testobjekte vortäuschen, die IAdd interface benutzen.

    
Sergey Berezovskiy 25.02.2013 16:10
quelle
14

Lieber mehr Kontext bereitstellen, aber normalerweise wird es so verwendet:

%Vor%     
Pavel Bakshy 25.02.2013 16:04
quelle

Tags und Links