2010-03-12 2 views
2

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

Благодаря

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

Difference between mock and stubs

+0

«Mock-объекты всегда используют проверку поведения, заглушка может идти в любом случае». Итак, заглушка - это макет? Какой смысл говорить «не издевательства», когда «заглушки» могут делать то же самое, что и mocks? Вместо того, чтобы процитировать большую статью, предоставьте фактическую разницу, которая имеет для вас значение. –

ответ

6

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

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 не имеет этой проблемы, тривиально писать mocks или поддельные реализации для целей тестирования.

0

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

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

+1

Разве это не насмешливая структура ... где вы записываете ожидание и проверяете их ... нет ничего проще, что бы просто создать фальшивую реализацию для меня .. спасибо – StackUnderflow

+4

@StackUnderflow: Вы раскалываете какие-то волосы. Можете ли вы обновить свой вопрос, чтобы определить разницу между «насмешкой» и «поддельной реализацией». Я думаю, что они такие же, но вы говорите, что они разные. –

Смежные вопросы