Ruby on rails RSPEC错误:赋值等于零(使用==进行比较)

Ruby on rails RSPEC错误:赋值等于零(使用==进行比较),ruby-on-rails,testing,rspec,controller,Ruby On Rails,Testing,Rspec,Controller,我不熟悉用RSPEC测试控制器。目前我正在测试我的作业是否正确。我尝试测试的控制器操作如下所示: def jobs @jobs = @customer.jobs end class CustomersController < ApplicationController before_action :authenticate_member! load_and_authorize_resource rescue_from CanCan::AccessDenied

我不熟悉用RSPEC测试控制器。目前我正在测试我的作业是否正确。我尝试测试的控制器操作如下所示:

  def jobs
    @jobs = @customer.jobs
  end
class CustomersController < ApplicationController
  before_action :authenticate_member!
  load_and_authorize_resource
  rescue_from CanCan::AccessDenied do |exception|
    redirect_to root_url, :alert => exception.message
  end
  before_action :set_section
  before_action :set_client_form, except: [:index]
  before_action :set_customer, only: [:show, :jobs, :notes, :destroy]

  helper_method :selected_show_tab

  def index
    #got rid of this to make it easier to read :p
  end

  def jobs
    @jobs = @customer.jobs
  end
我的测试是这样的:

describe CustomersController do
  before do 
    @company = FactoryGirl.create(:company_complete)
    @account = FactoryGirl.create(:account_house_address)
  end

it "assigns @jobs" do 
   get :jobs
    customer = FactoryGirl.create(:customer_john_human)
    job = FactoryGirl.create(:job_complete_job, account_id: @account.id, company_id: @company.id, customer_id: customer.id )

    expect(assigns(:jobs)).to eq([customer.jobs])
end
但是,当我运行此命令时,会出现以下错误:

Failure/Error: expect(assigns(:jobs)).to eq([customer.jobs])

expected: [#<ActiveRecord::Associations::CollectionProxy [#<Job id: 1, name: nil, status: "pending", company_id: 1, account_id_old: nil, job_type_id: nil, address_id: nil, trade_id: 1, lead_id: nil, started_date: nil, end_date: nil, created_at: "2015-04-17 03:58:42", updated_at: "2015-04-17 03:58:42", order_number: 2, creator_id: nil, account_id: 1, customer_id: 1, contact_id: nil>]>]

got: nil

但是,我仍然得到了相同的结果:

您没有对get调用进行身份验证,因此很可能您的作业操作从未执行过,因为您被重定向到了登录页面。我该怎么做呢?您必须在筛选器之前对所有作业进行存根,以便执行操作。
before :each do
    controller.stub(:authenticate_member!)
end