Заводская девушка-какова цель?


какова цель Заводской девушки в тестах rspec, когда я мог бы использовать before(:each) блоков? Это похоже на единственное различие между Фабричной девушкой и before(:each) Это то, что фабрика готовит создание объекта вне теста. Это правда?

3 58

3 ответа:

в игре Девушка Фабрики и Шам позволяет создавать шаблоны для допустимых и повторно используемых объектов. Они были созданы в ответ на светильники, где записано, что должны быть загружены в базу данных. Они позволяют больше настройки при создании экземпляра объектов, и они направлены на то, чтобы убедиться, что у вас есть действительный объект для работы. Они могут быть использованы в любом месте в ваших тестах и в ДО и после испытания Крюков.

раньше(:каждая), до (: все), после(:каждый) и после(:все) все стремятся дать вам место для установки и демонтажа, которые будут разделены между тестовой группой. Например, если вы собираетесь создать нового действительного пользователя для каждого отдельного теста, то вы захотите сделать это в своем крючке before(:each). Если вы собираетесь очистить некоторые файлы из файловой системы, вы хотите сделать это в крючке before. Если все ваши тесты создают файл tmp, и вы хотите удалить его после теста, вы сделаете это в своем after (: each) или после (все), крюк.

эти две концепции отличаются тем, что фабрики не нацелены на создание крючков вокруг ваших тестов, они направлены на создание допустимых объектов Ruby и записей, чтобы вы могли сохранить свое создание объекта гибким и сухим. Крючки Before и after предназначены для задач настройки и демонтажа, которые совместно используются в группе примеров, чтобы вы могли сохранить свой код установки и демонтажа сухим.

FactoryGirl заменяет светильники в тестах. Таким образом, вам не придется обновлять светильники при изменении модели данных. Светильники также могут быть громоздкими, когда вы добавляете больше краевых случаев.

FactoryGirl генерирует данные на лету и добавление и удаление полей намного легче. Кроме того, вы можете использовать его в настройке так же, как вы используете светильники.

Это делает его более ясным?

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

книги охватывает тему очень хорошо, если вы хотите еще немного чтения