使用夹具或补丁:单元测试

时间:2015-03-19 09:55:55

标签: python unit-testing mocking fixtures

Python单元测试的全新内容。一点代码。

class a():
    def __init__(param1, param2)
    self.param1 = param1
    self.param2 = param2
    self._problem = SomeOtherClass()

    def method1(self):
        self._problem.some_method()

    def method2(self):
        self._problem.some_other_method()

    def problem(self):
        return self._problem

现在,我正在为a类编写单元测试。为了测试 init ,method1和method2,我不知何故需要模拟SomeOtherClass的实例及其已调用的2个方法。现在我使用夹具作为:

@pytest.fixture
def problem():
    pro = mock.MagicMock()
    pro.some_method = mock.MagicMock()
    pro.some_other_metho = mock.MagicMock() 

现在测试:

def test_init_success(problem):
    a_instance = a(12, 13)
    assert a_instance.problem == problem

我的另一个选择是使用补丁。我应该使用哪一个?

EDIT1 :test_init_will中的断言失败,因为问题未作为 init 方法的参数传递。有没有解决方法呢?

0 个答案:

没有答案