我能够成功模拟一个函数,并且我确信原始函数没有被调用。我在原始函数中添加了一个巨大的 print 语句,当我模拟它时,不会调用此 print 。当我重新打开模拟时,不会调用打印语句。
但是,我的断言调用失败,说它从未被调用过。有人经历过这样的事情吗?
class FooTestCase(unittest.TestCase):
@mock.patch('MyObj.helper_function')
def test_simple(self, mock_hf):
my_obj = MyObj()
# internally, this class imports HelperModule
# and the method calls helper_function
my_obj.do_something()
mock_hf.helper_function.assert_called()
return
Run Code Online (Sandbox Code Playgroud)
我的错误响应
AssertionError: Expected 'helper_function' to have been called.
Run Code Online (Sandbox Code Playgroud)
更新 我刚刚在断言之前添加了以下几行
print mock_cw.method_calls
print mock_cw.mock_calls
Run Code Online (Sandbox Code Playgroud)
method_calls 是一个空列表,而mock_calls 是一个包含 1 项的列表,即
[call(arg1_expected_for_helper_fn, arg2_expected_for_helper_fn)]
Run Code Online (Sandbox Code Playgroud)
但断言仍然失败
我目前正在使用MS Access 2013,但以前使用的某些表格存在问题。我回过头来编辑它们以具有不同的功能。我需要弹出表格。现在,当它们不是弹出窗口时,它们可以完美工作,但是一旦我将表单更改为弹出窗口,表单就会从屏幕上弹出。我不知道如何解决这个问题。
现在,我要做的第一件事是从旧版本开始,然后我将重新制作表格。但是,一旦我从这些旧表格中更改了一项内容,表格就会再次从屏幕上弹出。
有没有人遇到这个问题或知道如何解决?