2012-02-15 4 views
6

Я не хочу создавать реальные файлы в моем unittest. Таким образом, я часто нахожу себя вокалистом с бессмысленным шаблоном и созданием макетов для псевдо-файлов. Мне было интересно , если это не будет лучше, чтобы избежать (в данном случае) эти бессмысленные усилия и попытаться нечто подобное в рамках локального метода UnitTest:Monkey-patch встроенная функция для модульного теста?

open = lambda x: StringIO() 

Будет ли это хорошо? Или есть основные оговорки/не выходить в этом подходе и быть лучше из с mock-заводами?

ответ

4

Это прекрасно, если вы понимаете, как работают области python (то есть локально хорошо, глобально вызовет проблемы).

Возможно, вы также должны подумать, что ваши обезьянники будут иметь разные режимы отказа от оригиналов и иметь соответствующие тесты для обеспечения правильного взаимодействия вашего кода со встроенными.