我在python中有一个包含静态方法的类.我想要mock.patch它,看看它是否被调用.当我尝试这样做时,我收到一个错误:
AttributeError: path.to.A does not have the attribute 'foo'
我的设置可以简化为:
class A:
@staticMethod
def foo():
bla bla
Run Code Online (Sandbox Code Playgroud)
现在测试代码失败并出现错误:
def test():
with mock.patch.object("A", "foo") as mock_helper:
mock_helper.return_value = ""
A.some_other_static_function_that_could_call_foo()
assert mock_helper.call_count == 1
Run Code Online (Sandbox Code Playgroud) 我想装饰我的测试来修补特定的功能。我对将模拟对象作为函数的参数不感兴趣。在此示例中,我希望能够省略mock_my_foo参数:
def my_foo(self):
print "My side_effect"
class SampleTest(TestCase):
@patch('some_module.foo', side_effect=my_foo)
def test_something(self, mock_my_foo):
pass
Run Code Online (Sandbox Code Playgroud)
我正在使用 python 2.7