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