wie zu behaupten, wenn eine Methode aufgerufen wurde mithilfe von nunit
ist es möglich zu behaupten, ob eine Methode aufgerufen wurde? Ich Teste die folgende Methode, und ich möchte behaupten, dass die _tokenManager.GetToken() aufgerufen wurde. Ich will nur wissen ob die Methode wurde aufgerufen, wenn die Methode keinen Wert zurückgibt. Ich bin mit Moq.
Dank,
Code-snippet
public void Subscribe(string code, string emailAddress, string columnKey)
{
//Request authentication token
var token = _tokenManager.GetToken(code, false);
if (!_tokenValidator.Validate(token))
{
//Token has expired or invalid - refresh the token
token = _tokenManager.GetToken(code, true);
}
//Subscribe email
_silverpopRepository.Subscribe(token.AccessToken, emailAddress, columnKey);
}
InformationsquelleAutor der Frage James Radford | 2013-12-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie mock
TokenManager
undTokenValidator
und erstellen Sie dann zwei Testfälle:GetToken
ist genau dann aufgerufen wird, sobaldGetToken
heißt genau zweimalFall 1:
Fall 2:
Alternativ können Sie erstellen ein unit-test ohne mocking
TokenValidator
und überprüfen Sie, obGetToken()
wurde mindestens einmal aufgerufen wurde. Jedoch, die Schaffung von zwei Fällen, wie in dem ersten Beispiel wird bevorzugt, da testen wir alle code-Pfade.Lesen Sie mehr über überprüfung in Moq:
InformationsquelleAutor der Antwort Dariusz Woźniak
Können Sie überprüfen, mit MOQ mit der Verify-Methode. Wie diese:
Müssen Sie in der Lage sein, um pass-token-manager in Ihrem system unter test irgendwie. Meist über das Tor oder vielleicht eine Immobilie.
Ich würde vorschlagen, Sie verwenden so etwas wie AutoFixture zu entfernen, die Hässlichkeit, die "ssss" und machen die Dinge ein wenig mehr TROCKEN.
Möglicherweise müssen Sie die token-manager mock Rückkehr etwas passendes zu übergeben werden die überprüfung. So etwas wie dieses:
InformationsquelleAutor der Antwort Jack Hughes