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)>'

上記のletsでユーザー変数を定義したので、これはなぜですか

4

1 に答える 1

0

注意深く見ると、spec ファイルではなく、5 行目のコントローラーに起因するエラーであることがわかります。あなたが持っているように、 let ステートメントですべてがうまくいくはずです。

于 2012-05-22T13:07:02.300 に答える