2017-01-27 13 views
0

Ich habe diese FunktionGibt es einen Wert, den ich für die Methode assert_called_once_with verwenden kann, die zu allem passt?

def my_function(param1, param2): 
    ... 
    my_other_function(param1, param2, <something else>) 
    ... 

Ich möchte, dass testen my_other_function mit param1 und param2 genannt wird, und ich kümmere mich nicht um den Rest

schrieb ich einen Test wie dieser

@mock.patch('mymodule.my_other_function') 
def test_my_other_function_is_called(my_other_function_mock): 

    my_function('foo', 'bar') 
    my_other_function_mock.assert_called_once_with('foo', 'bar', ?????) 

Gibt es einen Wert, den ich an die assert_called_once_with Methode (oder eine der "Schwester" -Methode von MagicMock übergeben kann, so dass die Behauptung besteht? Oder habe ich hav e um die Anrufliste manuell abzurufen und jeden der Parameter zu überprüfen, mit denen die Funktion aufgerufen wurde?

+1

Mögliche Duplikat [? Wie für Mock-Anrufe mit Wildcards überprüfen] (http://stackoverflow.com/questions/22184642/how auf Mock-Aufrufe mit Wildcards prüfen –

Antwort

0

In der Dokumentation https://docs.python.org/3/library/unittest.mock.html#any wird gesagt, dass Sie unittest.mock.ANY verwenden können:

@mock.patch('mymodule.my_other_function') 
def test_my_other_function_is_called(my_other_function_mock): 

    my_function('foo', 'bar') 
    my_other_function_mock.assert_called_once_with('foo', 'bar', ANY) 
Verwandte Themen