Я пишу веб-приложение, в котором используется SaS. Каждый клиент имеет свой собственный каталог db и app, поэтому у меня есть задача rake, которая создает все необходимые минимальные данные (исходные данные) для запуска их веб-сайта: права и роли по умолчанию, пользователь superadmin, уже заполненная таблица "us_states", некоторые локальные депо и терминалы (это приложение для логистики).
У меня нет сценариев огурца, и я только начал создавать некоторые. Я новичок с огурцом.
Сначала я поставил задачу данных семени в заданную строку, но это в значительной степени относится ко всем сценариям, и это не имеет особого смысла для не-программистов, которые смотрят на сценарии (для людей это такой, что его не нужно выражать сознательно), поэтому я переместил его в hooks.rb.
Мой первый сценарий выглядит следующим образом:
1 Feature: Place an order
2 In order to keep orders in the database
3 As a admin
4 I want to place orders
5
6 Scenario: Using common legs
7 Given I have 1 customers
8 And I'm on the homepage
9 And I follow "Place an Order"
10 When I select the customer
11 And I select the SSLine
12 And I click "Use Common Legs"
13 Then I should see "PICKUP AT"
14 And I should see "DELIVER TO" or "LOAD AT"
15 And I should see EMPTY RETURN
Мои hooks.rb выглядят следующим образом:
1 Before do
2 MinimumData.new('costi', '1234').populate #username and password
3 end
Вопросы:
- Я не хочу запускать эту задачу MinimumData.populate перед каждым сценарием, потому что она занимает 8 секунд. Должен ли я заставить его работать один раз, глобально? Как?
- Нужно ли очищать базу данных с помощью команды After.do? Я действительно не хочу этого делать, потому что я буду дублировать логику в After.do, только с операторами Model.delete_all. Я заметил, что после моего первого запуска тестовый db имеет все эти данные. Я могу очистить его с помощью rake db: test: очистить и повторно инициализировать его. Это хорошая практика?