0
我試圖修補一個類,有一個測試函數創建修補類的實例,讓那個實例調用一個類函數,然後我想測試那個類函數被調用。我怎樣才能做到這一點?補丁 - 如何檢查修補類的實例稱爲類函數?
下面是我的代碼的基本變化:
測試文件:
class TestChannel(unittest.TestCase):
@patch("notification.models.Channel")
def testAddChannelWithNamePutsChannel(self, *args):
addChannelWithName("channel1")
self.assertTrue(Channel.put.called)
的代碼進行測試:
def addChannelWithName(name):
channel = Channel(name = name)
channel.put()
基本上,我想測試通道。 put()被調用。當然,這段代碼不起作用,因爲我正在檢查類函數put()是否被調用而不是實例,但一般來說。我需要在實例上調用它以通過它。我已經嘗試了幾個嘲笑Channel類的不同部分的變體,它是返回值,但我似乎無法使其工作。我該怎麼做?非常感謝!
在這種情況下,我會給你一個+1。不過,我也有一個非常類似的功能,刪除一個頻道,在這種情況下,嘗試返回已刪除的對象沒有多大意義。任何想法都可以在所有情況下工作? – golmschenk
我不得不更多地瞭解你的Channel類,並且「刪除一個頻道」意味着(暗示,做什麼)等等來回答這個問題。有一點是,單元測試需要可測試的代碼......並且當您首先編寫代碼時,編寫可測試代碼更容易;) –