我有以下失败:
Run Code Online (Sandbox Code Playgroud)Failures: 1) RelationshipsController creating a relationship with Ajax should increment the Relationship count Failure/Error: xhr :post, :create, relationship: { followed_id: other_user.id } NoMethodError: undefined method `authenticate!' for nil:NilClass # ./spec/controllers/relationships_controller_spec.rb:14:in `block (4 levels) in <top (required)>' # ./spec/controllers/relationships_controller_spec.rb:13:in `block (3 levels) in <top (required)>'
但是很奇怪,如果我访问该网站,事情就会起作用(followers如果我点击" 关注"按钮,计数器会增加:

而最奇怪的是,没有任何认证!relationship_controller_spec.rb中的方法:
require 'spec_helper'
describe RelationshipsController do
let(:user) { FactoryGirl.create(:user) }
let(:other_user) { FactoryGirl.create(:user) }
before { sign_in user }
describe "creating a relationship with Ajax" do
it "should …Run Code Online (Sandbox Code Playgroud) 我的foo_controller_spec.rb中有30个规格,当我使用spec运行整个文件时,我得到4个失败,2个待定.当我单独运行4个失败的规格时,其中3个仍然失败,但其中一个通过.起初我认为这是一个数据库问题,在运行之间没有正确清理数据.所以我安装了database_cleaner(http://github.com/bmabey/database_cleaner)并将此代码添加到我的spec_helper:
config.before(:suite) do
DatabaseCleaner.strategy = :truncation
DatabaseCleaner.clean_with(:truncation)
end
config.before(:each) do
DatabaseCleaner.start
Sham.reset
login
end
config.after(:each) do
DatabaseCleaner.clean
end
Run Code Online (Sandbox Code Playgroud)
现在,当我运行我的规格时,我可以看到每个规格之间的表都被截断,所以我知道它正在工作,但是当使用所有其他规格运行时规范仍然失败但是当单独运行时传递.我在这里错过了什么?