模拟多个返回值,包括原始行为

时间:2017-04-03 17:48:40

标签: python python-3.x mocking

实际上在库中的底层逻辑我有一些类。为了测试一些业务逻辑,我需要保持原始行为N次,最后得到一些Exception

from unittest import mock

class A():
    def orig(self):
        return 5

假设{2}成功调用后orig方法应该失败。 我做过类似的事情:

with mock.patch.object(A, 'orig', side_effect=[mock.Mock(wraps=A.orig)(A), mock.Mock(wraps=A.orig)(A), ValueError]):
    print(A.orig())
    print(A.orig())
    print(A.orig())

但由于传递参数的一些混乱,这看起来并不正确。 这不是可靠的解决方案。

0 个答案:

没有答案