Lassen Sie uns sagen, ich habe Methoden A, B, C und D.überspringen innere Methodenaufrufe in Unit-Tests
public bool A (int foo)
{
bool result = false;
if (foo > 0)
result = B();
else result = C();
D(foo);
return result;
}
Ich möchte ein Unit-Test für A schreiben, mit B oder C Aufruf, sondern wollen Überspringen Sie den D-Aufruf (weil es eine Methode ist, die externe Dienste verwendet). Ist es möglich, den D-Aufruf mit einigen Attributen zu überspringen? Oder die D verspotten und sie durch einen falschen Dienst ersetzen?
Sie müssen * Mock * 'D': Sie können nicht vermeiden,' D' aufzurufen, wenn Sie 'A' Methode eingeben –
Ja, Sie müssen Mock * D *. – bit
In beiden Fällen ist Ihr Wunsch, den 'D'-Anruf zu überspringen, das Problem selbst. Sie möchten Ihr Gerät nicht verändern, sonst ist es kein echter Test. Ihr Test sollte die Codeeinheit als eine Art Blackbox behandeln. "Ich gebe diesen Input, ich erwarte diesen Output." –