相关疑难解决方法(0)

测试不通过:未定义的方法`authenticate!' 为零:NilClass?

我有以下失败:

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)>'
Run Code Online (Sandbox Code Playgroud)

但是很奇怪,如果我访问该网站,事情就会起作用(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)

rspec ruby-on-rails

10
推荐指数
2
解决办法
5814
查看次数

单个规格在单独运行时通过,但在运行所有规格时失败

我的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)

现在,当我运行我的规格时,我可以看到每个规格之间的表都被截断,所以我知道它正在工作,但是当使用所有其他规格运行时规范仍然失败但是当单独运行时传递.我在这里错过了什么?

testing rspec ruby-on-rails

6
推荐指数
1
解决办法
3075
查看次数

标签 统计

rspec ×2

ruby-on-rails ×2

testing ×1