我很难过这个.
到目前为止,教程中的所有内容都进展顺利,但是当我将这段代码添加到我的/spec/requests/users_spec.rb文件中时,事情开始向南:
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 => "ryan@example.com"
fill_in "Password", :with => "foobar"
fill_in "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
Run Code Online (Sandbox Code Playgroud)
如果我清除测试数据库(rake db:test:prepare),则所有测试都通过.但是,如果我再次运行测试,它们会失败,因为测试数据库不会清除上面添加的代码的记录.
我已经google了很多,我发现的大部分内容都指向config.use_transactional_fixtures设置,或指向代码中的嵌套问题.
我很确定这些都不是我的情况.这是我的spec_helper.rb文件:
require 'rubygems'
require 'spork'
Spork.prefork do
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
config.mock_with :rspec
config.fixture_path = "#{::Rails.root}/spec/fixtures" …Run Code Online (Sandbox Code Playgroud)