Je veux tester cette méthode:Comment puis-je tester que j'appelle pickle.dump() correctement?
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)
je peux mettre en place le test pour vous assurer que pickle.dump
est appelé, et que le premier argument est l'objet:
@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])
Je ne suis pas sûr que faire pour le deuxième argument, cependant. Si j'ouvre un nouveau fichier pour le test, ça ne va pas être le même que ce qui est appelé pour l'exécution. J'aimerais au moins m'assurer que j'ouvre le bon dossier. Est-ce que je me moquerais open
et m'assurerais qu'on m'appelle avec le bon nom à un moment donné?
Je pensais en fait ce ne valait pas le test, et je l'ai fait autant que je pouvais quand même et a trouvé deux bugs .... – JETM