如何在 pytest-mock 中测试方法是否已使用相应的对象调用?
我的对象如下:
class Obj:
def __init__(self):
self.__param = []
self.__test = []
@property
def param(self):
return self.__param
@param.setter
def param(self, value):
self.__param = value
# both methods: getter and setter are also available for the self.__test
# This is just a dummy test object
class Test:
def call_method(self, text:str):
obj = Obj()
obj.param = [("test", "1"), ("test2", "2")]
self.test_call(text, obj)
def test_call(self, text:str, object: Obj):
pass
我的测试如下:
def test_method(mocker):
mock_call = mocker.patch.object(Test, "test_call")
test = Test()
test.call_method("text")
expected_obj = Obj()
expected_obj.param = [("test", "1"), ("test2", "2")]
mock_call.assert_called_once_with("text", expected_obj)
目前我收到错误消息:
assert ('text...7fbe9b2ae4e0>) == ('text...7fbe9b2b5470>)
pytest 似乎检查两个对象是否具有相同的地址。我只想检查两个对象是否具有相同的参数。我怎样才能检查这个?