python类似assertFunctionNotCalled?

时间:2015-12-18 19:57:11

标签: python unit-testing

编辑:这个问题涉及python 3.5

在python单元测试中,有没有办法断言没有调用给定的代码块?

我有一个我正在测试的功能,它可以跟随两个分支中的任何一个:如果用户之前已经登录,则是更快,更可靠的分支,或者如果这是他们的第一次访问则是更慢的可靠性分支。基本上,用户第一次登录时,程序必须从单独的服务器请求有关它们的信息,这可能很慢(有时,也可能是关闭)。但是,一旦它获得了信息,它就会在本地缓存它,并且只需在后续登录时使用本地缓存来存储数据。

函数的最终结果是相同的,所以我无法通过简单地查看函数的输出来知道获取信息所花费的代码分支。理想情况下,我希望能够有效地执行assertFunctionNotCalled来测试它是否在第二次(以及后续)登录尝试时从本地缓存中提取。我该如何最好地测试这个?

1 个答案:

答案 0 :(得分:2)

使用这样的bool:

from mock import patch
with patch('something') as mock_something:
    self.assertFalse(mock_something.called)