我正在使用python的unittest.mock在Django應用程序中執行一些測試。我想檢查一個類是否被調用,並且它的實例上的方法也被調用。模擬python單元測試中的類和類方法
例如,給定這個簡化的示例代碼:
# In project/app.py
def do_something():
obj = MyClass(name='bob')
return obj.my_method(num=10)
而這個測試來檢查發生的事情:
# In tests/test_stuff.py
@patch('project.app.MyClass')
def test_it(self, my_class):
do_something()
my_class.assert_called_once_with(name='bob')
my_class.my_method.assert_called_once_with(num=10)
試驗成功說my_class
被調用,但是他說,my_class.my_method
不調用。我知道我錯過了一些東西 - 嘲笑模擬課堂上的一種方法? - 但我不確定什麼或如何使它工作。
Doh!我花了很長時間看着我認爲我做錯了嘲笑,我錯過了那個愚蠢的錯誤!謝謝Jared。 –