2016-03-29 26 views
0

Ich verwende assert_has_calls aus der Pseudo-Python-Bibliothek. Ich laufe in ein Problem, wenn ich so etwas tun:assert_has_calls stub den Methodenaufruf nicht

mocks = mock.Mock() 
mocks.assert_has_calls([mock.call.method_to_be_mocked(mock.ANY), 
         mock.call.method_to_be_mocked(mock.ANY)]) 

Ich möchte sicherstellen, dass das Verfahren eine bestimmte Anzahl von Malen aufgerufen wird, aber zugleich möchte ich auch die Anrufe Stub zu die Methode. assert_has_calls scheint den Stubbing-Teil nicht zu tun. Die tatsächliche Methode wird aufgerufen und schlägt in der Entwicklungsumgebung fehl.

Was kann ich tun, um dies zu beheben?

Antwort

0

Sie wollen behaupten, wie es oft genannt wurde, so call_count und assert_equal (Sie verwenden von unittest oder je nachdem, was andere gleichwertige aus dem Test-Framework) verwenden verwenden, um zu validieren, dass es um die Anzahl von Malen entspricht man es erwarten angerufen werden:

assert_equal(mock.call.method_to_be_mocked.call_count, 2)