Мы делаем это.
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 нет этой проблемы, написать макеты или поддельные реализации для целей тестирования тривиально.
person
S.Lott
schedule
12.03.2010