Я запускаю тесты в своем приложении Rails 3.Я использую rspec, capybara и Selenium RC.
У меня есть следующий тест для формы:
require 'spec_helper'
require 'support/database_cleaner.rb'
describe "Greetings" do
attr_reader :selenium_driver
alias :page :selenium_driver
before(:all) do
selenium_setup
@selenium_driver.start_new_browser_session
end
after(:all) do
@selenium_driver.close_current_browser_session
@verification_errors.should == []
end
describe "greeting creation" do
before(:each) do
@board = Factory(:board)
end
describe "success" do
it "should create and display the greeting" do
page.open "/boards/#{@board.id}"
page.click "greeting_link"
wait_for_ajax
page.type "greeting_headline", "Hey Have a great day!!!"
page.type "greeting_content", "I wish you the best birthday ever. Your are a great friend and deserve a great day."
page.type "user_name", "Example User"
page.type "user_email", "it@it.com"
page.click "commit"
wait_for_ajax
("Add greeting").should == page.get_text("greeting_link")
#("Hey Have a great day!!!").should == page.get_text("css=div.headline.round")
#page.is_text_present("Hey Have a great day!!!\n\n I wish you the best birthday ever. Your are a great friend and deserve a great day.").should be_true
#("Hey Have a great day!!!").should == page.get_text("css=div.headline.round")
end
end
Если я делаю этот текст вручную в браузере, он работает отлично.Однако, когда я запускаю тест, он терпит неудачу, потому что проверка говорит, что электронное письмо уже было взято.
Я пробовал rake db: test: prepare.Нет радостиТа же проблема.
Я установил гем database_cleaner в тестовой среде, и у меня есть следующее в моей спецификации / support / database_cleaner.rb
DatabaseCleaner.strategy = :truncation
RSpec.configure do |config|
config.use_transactional_fixtures = false
config.before :each do
DatabaseCleaner.start
end
config.after :each do
DatabaseCleaner.clean
end
end
Я полностью потерян здесьЯ NOOB.
Может кто-нибудь указать мне правильное направление, чтобы исправить эту ситуацию?