Python patch.object装饰器无法访问类的方法

时间:2016-10-20 10:30:04

标签: python mocking python-unittest python-mock

我在下面有一个测试用例:

class Foo(unittest.TestCase):

    @staticmethod
    def my_method():
        ...

    def test_01(self):

        with patch.object(bar, 'method_to_be_mocked', side_effect=Foo.my_method):
            test_stuff()


    def test_02(self):

        with patch.object(bar, 'method_to_be_mocked', side_effect=Foo.my_method):
            test_stuff()


     ... ...
    def test_10(self):

        with patch.object(bar, 'method_to_be_mocked', side_effect=Foo.my_method):
            test_stuff()

基本上我使用Foo.my_method来模拟method_to_be_mocked以上工作正常,但是你可以看到我有10个这样的测试用例而且我不想写&#34 ;与patch.object ..."十次。因此我想使用装饰器并执行以下操作:

@patch.object(bar, 'method_to_be_mocked', side_effect=Foo.my_method):
class Foo(unittest.TestCase):

    @staticmethod
    def my_method():
        ...

    def test_01(self):
            test_stuff()


    def test_02(self):
            test_stuff()


     ... ...
    def test_10(self):
            test_stuff()

但是它告诉我Foo没有定义?

0 个答案:

没有答案