Библиотека Python для создания заглушек / поддельных объектов - PullRequest
2 голосов
/ 13 марта 2010

Я ищу библиотеку заглушки Python. Что-то, что можно было бы использовать для создания поддельных классов / методов в моих модульных тестах. Есть ли простой способ добиться этого в python?

Спасибо

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

Разница между макетом и окурками

Ответы [ 2 ]

7 голосов
/ 13 марта 2010

Мы делаем это.

class FakeSomethingOrOther( object ):
   def __init__( self ):
       self._count_me= 0
   def method_required_by_test( self ):
       return self.special_answer_required_by_test
   def count_this_method( self, *args, *kw ):
       self._count_me += 1

Их не нужно много настраивать

class TestSomething( unittest.TestCase ):
    def setUp( self ):
        self.requiredSomething = FakeSomethingOrOther()
        self.requiredSomething.attribute_required_by_test= 12
        self.requiredSomething.special_answer_required_by_test = 32
        self.to_be_tested = ActualThing( self.requiredSomething )

Поскольку вам не требуются сложные статически проверенные объявления типов, все, что вам нужно, это класс с правильными методами. Вы можете принудительно установить значения атрибутов теста в тривиальном порядке.

Эти вещи действительно очень легко написать. Вам не нужно много поддержки или библиотек.

В других языках (например, Java) очень сложно написать что-то, что пройдет проверку статической проверкой во время компиляции. Поскольку в Python такой проблемы нет, писать тесты или фальшивые реализации тривиально для целей тестирования.

0 голосов
/ 13 марта 2010

Python mocker выглядит красиво.

Экземпляр Mocker используется для команды записи и воспроизведения ожидания от любого количества фиктивных объектов.

...