在Python中,由于测试代码可以访问模拟对象,如何从中获取被测代码在构造它时传递的参数?在
这是一个经过提炼的例子来说明我要做的事情。我不知道该怎么做才是正确的。在
from unittest import mock
# Under test:
class Foo(object):
def __init__(self, x):
self._x = x
def compute():
return hash(self._x)
def computeFoo():
return Foo("abc").compute() + Foo("def").compute()
# Test:
class MockFoo(mock.MagicMock):
def compute(self):
# TODO: How to get the value x which was passed to the Foo constructor?
if self._x == "abc":
return 0
return 1
if __name__ == "__main__":
m = MockFoo()
mock.patch(__name__ + ".Foo", return_value=m).start()
assert computeFoo() == 1
谢谢你的帮助。在
目前没有回答
相关问题 更多 >
编程相关推荐