Python mock: добавление метода реального класса к mock объекту
Я думаю многим из нас приходилось работать с юнит тестированием, но немногим приходилось работать с разработкой моков. Для тех кто несильно знаком с этой концепцией могут почитать вводную статью.
Так вот, в python есть прекрасная библиотека, которая называется mock. Все было бы хорошо, но к сожалению, у нее нет встроенных средств добавления метода реального класса к уже созданному mock экземпляру класса. Зачем это нужно? (Возможно спросите вы)
Например, вы разрабатываете класс и какой-то метод для него. Вам необходимо протестировать только этот метод класса не вызывая остальных. Как это можно сделать? Вот примерно где-то так:
from mock import Mock import new class RealClass(object): def other_method(self): self.attribute_initiated_earlier = "class value" def real_method(self): return [self.attribute_initiated_earlier, 'password'] fake_object = Mock(spec=RealClass()) class_method = object.__getattribute__(RealClass, 'real_method') fake_object.real_method = new.instancemethod(class_method, fake_object, Mock) fake_object.attribute_initiated_earlier = "new value" print fake_object.real_method()
Если вам требуется более детальное описание и так упрощенного кода , пишите комментарии!
А также можно почитать:
Trackback from your site.
Mykhailo Poliarush
| #
Добрый день, это вывод вы сделали по каким урокам?
Valerii Synenko
| #
Опис курсу шикарний, теми затронуті правильні, але ведення курсу: “це сюди, те туди, все ж ясно!”, пояснень = 0.
Igor Vlasuyk
| #
“Продолжительность 16 часов (2 дня)”
Это то есть 2 рабочих дня надо полностью быть на тренинге?
И на каком языке программирования будет практика?
Nataliia Koval
| #
Большое спасибо! С расписанием вроде разобралась.
Chmel Viktor
| #
Доброго дня