Как издеваться над питоном?

Библиотека Mox Mocking позволяет вам быть конкретным или агностиком в отношении класса, над которым вы издеваетесь.

  1. mock = mox.CreateMock(Foo) или же
  2. mock = mox.CreateMockAnything()

Документация Mox предлагает использовать первый способ (в основном, проверить тип макета) везде, где это возможно. Python как динамический язык не зависит от типа. Два подхода выглядят противоречивыми для меня.

Итак, какой подход к насмешкам более Pythonic?

1 ответ

Они не то же самое. Из документации:

Некоторые классы не предоставляют общедоступные интерфейсы; например, они могут использовать __getattribute__ динамически создавать их интерфейс. Для этих классов вы можете использовать MockAnything, Он не навязывает никакой интерфейс, поэтому любой вызов, который пожелает ваше сердце, действителен. Он работает в той же парадигме запись-воспроизведение-проверка. Не используйте это, если вам абсолютно не нужно! Вы можете создать MockAnything с CreateMockAnything Метод вашего экземпляра Mox выглядит так:

Напротив, при создании макета с использованием CreateMock(Foo), вы получаете исключение, когда вызывается неизвестный метод.

Другие вопросы по тегам