我正在尝试使用Python中的模拟库进行一些单元测试.我有以下代码:
def a():
print 'a'
def b():
print 'b'
if some condition
a()
Run Code Online (Sandbox Code Playgroud)
如何b在进行模拟调用时声明已经进行了调用b?我尝试了以下代码,但失败了:
mymock=Mock()
mymock.b()
assertTrue(a.__call__ in mymock.mock_calls)
Run Code Online (Sandbox Code Playgroud)
出于某种原因,我认为这mymock.b()与方法无关b().可以做些什么呢?
如果你修补a,你可以确保它被调用如下:
with mock.patch('__main__.a') as fake_a:
b()
fake_a.assert_called_with()
Run Code Online (Sandbox Code Playgroud)
如果您的方法位于不同的模块中:
import mymodule
with mock.patch('mymodule.a') as fake_a:
mymodule.b()
fake_a.assert_called_with()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7600 次 |
| 最近记录: |