0

我正在使用 mox 在我的代码中删除电子邮件发送功能。我想验证该函数是否被调用 N 次,每次都使用一组参数。

Mox 正在引发 ValueError("必须至少有一个预期的方法") ,就好像我已经存根的函数调用没有发生,但它们实际上似乎正在发生。

观察我的日志,我可以看到正在调用的函数,并看到我的数据库中的所有日志消息/更新,这些消息告诉我正在测试的代码实际上正在运行。我还有 14 个其他单元测试来验证这一点,所以我相信这是测试而不是底层代码的问题。

这是我的测试:

class MyTestSuite(mox.MoxTestBase):
    def test_my_send_function(self):
        self.mox.StubOutWithMock(module_path, "my_send_function")
        for state in SEQUENCE: # defined elsewhere, assume 5 states in sequence
            module_path.my_send_function(to_email_address, subject, IgnoreArg())
    self.mox.ReplayAll()

    module_path.my_send_function_parent() # loops over the 5 states in SEQUENCE and calls my_send_function()

    # Verify() and UnsetStubs() are done automatically because I subclasses MoxTestBase

为什么mox说电话从来没有发生过?我在 mox 文档或 SO 上的其他地方找不到任何关于此的信息。

4

0 回答 0