我想測試這種方法:如何測試我正確調用pickle.dump()?
class Data(object):
def save(self, filename=''):
if filename:
self.filename = filename
if not self.filename:
raise ValueError('Please provide a path to save to')
with open(self.filename, 'w') as f:
pickle.dump(self, f)
我可以設置測試,以確保pickle.dump
被調用,並且第一個參數是對象:
@patch('pickle.dump')
def test_pickle_called(self, dump):
self.data.save('foo.pkl')
self.assertTrue(dump.called)
self.assertEquals(self.data, dump.call_args[0][0])
我不知道盡管如此,第二個參數該怎麼做。如果我爲測試打開一個新文件,它不會與被調用執行的文件相同。我至少想確定我正在打開正確的文件。我只是嘲笑open
,並確保在某些時候以正確的名稱被叫到?
其實我在想,這是不值得的測試,然後我做了,就像我反正能發現兩個漏洞.... – JETM