0

当我运行这个测试

require 'spec_helper'

describe AssignmentsController do

  let(:user) { create(:user) }
  let(:course) { create(:course) }

  describe "GET 'index'" do
     it "returns http success" do
      assignment = user.assignments.build(name: "Hello 2", start_date: "5/20/2000", due_date: "5/21/2000")
      get :index
      assigns(:assignment).should eq([assignment])
    end
  end
end

我得到这个失败:

  1) AssignmentsController GET 'index' returns http success
     Failure/Error: get :index
     NoMethodError:
       undefined method `assignments' for nil:NilClass
     # ./app/controllers/assignments_controller.rb:5:in `index'
     # ./spec/controllers/assignments_controller_spec.rb:29:in `block (3 levels) in <top (required)>'

为什么会这样,因为我用上面的 let 定义了用户变量

4

1 回答 1

0

如果你仔细看,你会发现错误来自第 5 行的控制器,而不是规范文件。let 语句按照您的方式使用,一切都应该没问题。

于 2012-05-22T13:07:02.300 回答