Если вы создаете большое приложение и у вас нет команды, которая действительно хороша в написании несвязанного кода, который может быть хорошо протестирован с помощью тестов черного ящика и готов полностью принять использование / отладку множества макетов и заглушек, не делайте этого. Я иду по Фабричной дороге.
Где бы вы ни читали о том, как работают Awesome Factories Are, вы увидите небольшое предостережение о том, что фабрики могут быть неприменимы в большом приложении, потому что они немного медленнее, чем фикстуры.
Но «немного медленнее» на самом деле на порядки медленнее.
Кодировать фабрики ненамного легче, чем фикстуры, использующие метки для идентификаторов, если вы держите фикстуры организованными. А в некоторых случаях фабрики труднее отлаживать.
Буквально сегодня вечером я преобразовал одну фабрику в приборы, и время выполнения тестового файла, в котором она использовалась, увеличилось с 65 до 15 секунд, хотя только около 15% тестов в этом тестовом файле используют эту фабрику.
Если вы используете minitest, вы можете запускать тесты в случайном порядке; это быстро выявит любую связь данных между тестами. (не уверен, есть ли у rspec возможность рандомизировать порядок тестирования)
person
Michael Johnston
schedule
07.02.2011