Che*_*tan 2 python python-unittest
我必须模拟如下所示的方法:
import json
def some_method(self):
output_one = json.loads(varone)
output_two = json.loads(vartwo)
Run Code Online (Sandbox Code Playgroud)
import json
self.stubs = stubout.StubOutForTesting()
self.stubs.Set(json, "loads", lambda *a: output_one)
self.stubs.Set(json, "loads", lambda *a: output_two)
Run Code Online (Sandbox Code Playgroud)
结果是看到只有output_two因为output_one被覆盖了。我应该如何模拟一个方法两次并期望每次都有不同的输出。
使用side_effect。
来自文档的示例:
>>> mock = Mock()
>>> mock.side_effect = [3, 2, 1]
>>> mock(), mock(), mock()
(3, 2, 1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2266 次 |
| 最近记录: |