Избегайте избыточного @patch при насмешках с Python

Исходя из статического фона языка программирования, мне интересно, как лучше всего делать насмешки в Python. Я привык к внедрению зависимостей. В рамках тестов макеты создаются и передаются в тестируемую систему (SUT ). Однако, глядя на Mock и другие фиктивные фреймворки для Python, кажется, что типы/функции/и т.д. в модуле заменены на тестовой -на тестовой основе -.

В частности, с Mock поверх каждого модульного теста вы говорите @patch('some.type.in.the.module.under.test')для каждого типа/функции/и т. д. ты хочешь издеваться. На протяжении всего теста эти вещи высмеиваются, а затем возвращаются. К сожалению, во всех тестах фикстура довольно близка к одной и той же, и в конечном итоге вы повторяете свои @patchснова и снова.

Мне нужен способ поделиться набором исправлений между модульными тестами. Я также хочу внести коррективы в прибор компонуемым способом. Я в порядке, используя контекстный менеджер вместо декоратора.

12
задан Travis Parks 25 July 2012 в 19:56
поделиться