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 方法的参数传递。有没有解决方法呢?