0
通過I類有這樣的事情:懲戒作爲參數
class ThisClass:
def my_method(self, param):
# Do normal stuff
pass
class OtherClass:
def my_method(self, param):
# Do crazy stuff
pass
def useful_function(some_class, some_param):
internal = some_class()
result = internal.my_method(some_param)
uses_result(result)
# The useful_function can be called with any of the classes
useful_function(ThisClass, 10)
我想要做的是檢驗是否my_method
被稱爲內useful_function
。我試圖嘲笑類和它的方法,但它沒有工作:
# Inside the test class
def test_case(self):
MockSomeClass = mock.Mock()
MockSomeClass.my_method.return_value = 'Some useful answer'
useful_function(MockSomeClass, 100)
MockSomeClass.my_method.assert_called_once()
誤差依賴於我用的my_method
結果在uses_result
的事實,但如預期的那樣嘲笑方法不返回'Some useful answer'
。我究竟做錯了什麼?
它的工作就像一個魅力。只是爲了完成答案,斷言必須像'MockSomeClass.return_value.my_method.assert_called_once()'完成。謝謝! – lucastamoios