Mocking a class: Mock() or patch()? 对一个类进行Mock:Mock()还是patch()?
- 论坛
- Mocking a class: Mock() or patch()? 对一个类进行Mock:Mock()还是patch()?
8 浏览
Mocking a class: Mock() or patch()? 对一个类进行Mock:Mock()还是patch()?
我正在使用Python的mock库,并想知道这两种方法哪个更好(即更符合Python的风格)。
方法一:只需创建一个模拟对象并使用它。代码如下:
def test_one (self): mock = Mock() mock.method.return_value = True self.sut.something(mock) # 这将调用mock.method并检查结果。 self.assertTrue(mock.method.called)
方法二:使用patch创建一个模拟对象。代码如下:
@patch("MyClass") def test_two (self, mock): instance = mock.return_value instance.method.return_value = True self.sut.something(instance) # 这将调用mock.method并检查结果。 self.assertTrue(instance.method.called)
这两种方法都能实现相同的功能。我不确定它们之间的区别。
有人能给我一些启示吗?