Данные семени в огуречных тестах

Я пишу веб-приложение, которое используется SaS. У каждого клиента есть их собственный дб и каталог приложения, таким образом, у меня есть задача граблей, которая создает все необходимые минимальные данные (данные семени) для выполнения их веб-сайта: права по умолчанию и роли, суперадминистраторский пользователь, "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

Вопросы:

  1. Я не хочу выполнять эту задачу MinimumData.populate перед каждым сценарием, потому что требуется 8 секунд. Я должен заставить его работать только однажды, глобально? Как?
  2. У меня есть к очистке база данных с After.do? Я действительно не хочу делать это, потому что я копирую логику в After.do, только с операторами Model.delete_all. Я заметил, что после моего первого показа, тестовый дб имеет все те данные все еще в. Я могу произвести чистку его с граблями db:test:purge и повторно инициализирование его. Это - хорошая практика?
17
задан Costi 8 July 2010 в 21:22
поделиться

2 ответа

Я не знаю эквивалента before (: all) в огурце. Что вы можете сделать, так это добавить свое семя в файл, скажем features / support / seed.rb , а затем в верхней части features / support / env.rb и под строкой, которая требуется ваш environment.rb введите строку:

require File.dirname(__FILE__) + '/seeds'

или, альтернативно,

#just write the code you want to execute directly into the env.rb file

Это ваши доступные блоки для добавления в env.rb

Before do
  #this code is run before each scenario
end

after do
  #this code is run after each scenario
end

at_exit do
  #this code is run at the end
end
22
ответ дан 30 November 2019 в 12:19
поделиться

Джефф Ланотт знает ответ. Я просто хотел добавить ссылку на вики-страницу Cucumber на хуков , которая описывает эти и другие примеры.

3
ответ дан 30 November 2019 в 12:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: