Это из книги Майкла Хартла, раздел 8.4. RSpec тестирует успешную регистрацию, но не проходит, потому что адрес электронной почты не уникален. Поэтому, если я вхожу в код и обновляю адрес электронной почты в спецификации, он работает при первом запуске, но не во второй раз. Я подтвердил это, потому что я могу пройти тест, изменив адрес электронной почты или запустив rake db: test: clone.
Буду признателен за любые мысли о том, как преодолеть это.
Код:
требуется 'spec_helper'
describe "Users" do
describe "signup" do
describe "failure" do
it "should not make a new user" do
lambda do
visit signup_path
fill_in :user_name, :with => "" #you can use CSS id instead of label, which is probably better
fill_in "Email", :with => ""
fill_in "Password", :with => ""
fill_in "Password confirmation", :with => ""
click_button
response.should render_template('users/new')
response.should have_selector("div#error_explanation")
end.should_not change(User, :count)
end
end
describe "success" do
it "should make a new user" do
lambda do
visit signup_path
fill_in "Name", :with => "Example User"
fill_in "Email", :with => "alex@example.com"
fill_in "Password", :with => "foobar"
fill_in "Password confirmation", :with => "foobar"
click_button
response.should have_selector("div.flash.success", :content => "Welcome")
response.should render_template('users/show')
end.should change(User, :count).by(1)
end
end
end
end