我希望能够看到如何实例化类,并且我想看看如何使用该类的方法。我可以完成第一个目标,但是,下面的代码演示了我如何监视方法调用。最后的断言失败了。
import mock
class A:
def __init__(self, some_arg):
print("constructor")
def f(self, some_var):
print(some_var)
p = mock.patch('__main__.A', wraps=A)
m = p.start()
A = m
a = A('something')
a.f('my_arg')
assert mock.call('something') in m.mock_calls
assert m.method_calls # This fails, call to f is not tracked
如果我使用autospec = True,我可以看到方法调用,但是实际的方法没有被调用。我想要实际的代码运行,我只是想窥探它。
我无法执行http://wesmckinney.com/blog/spying-with-python-mocks/之类的操作,因为我没有该类的实例。
答案 0 :(得分:0)
这个https://stackoverflow.com/a/41599695/9816369有一个非常可靠的解决方案。从那以后,我可以这样做:
ON
它可能会更好一点,但这是非常可靠的。我还应该提到https://github.com/beanbaginc/kgb,但我不想修改我正在使用的要求文件。