ฉันใช้การเยาะเย้ยกับ Python และสงสัยว่าสองวิธีนี้ดีกว่า (อ่าน: pythonic เพิ่มเติม)
วิธีที่หนึ่ง : เพียงสร้างวัตถุจำลองและใช้สิ่งนั้น รหัสมีลักษณะดังนี้:
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)
วิธีที่สอง : ใช้โปรแกรมแก้ไขเพื่อสร้างภาพจำลอง รหัสมีลักษณะดังนี้:
@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)
ทั้งสองวิธีทำสิ่งเดียวกัน ฉันไม่แน่ใจในความแตกต่าง
ใครช่วยสอนฉันได้บ้าง