Tôi đang sử dụng giả lập với Python và tự hỏi cách tiếp cận nào trong hai cách tiếp cận đó tốt hơn (đọc: thêm pythonic).
Phương pháp một : Chỉ cần tạo một đối tượng giả và sử dụng nó. Mã trông giống như:
def test_one (self):
mock = Mock()
mock.method.return_value = True
self.sut.something(mock) # This should called mock.method and checks the result.
self.assertTrue(mock.method.called)
Phương pháp hai : Sử dụng bản vá để tạo mô hình. Mã trông giống như:
@patch("MyClass")
def test_two (self, mock):
instance = mock.return_value
instance.method.return_value = True
self.sut.something(instance) # This should called mock.method and checks the result.
self.assertTrue(instance.method.called)
Cả hai phương pháp đều làm điều tương tự. Tôi không chắc về sự khác biệt.
Bất cứ ai có thể khai sáng cho tôi?