第二次测试通过罚款,第一次没有。不知道为什么。
require 'spec_helper'
RSpec.describe UserNotesController do
context 'GET #index' do
let(:note) { build(:user_note) }
specify 'populates an array of notes' do
expect(:user_notes).to eq [note]
end
specify 'renders the :index view' do
get :index
expect(response).to render_template :index
end
end
end
不确定为什么它没有通过,但我收到了这条消息。
(compared using ==)
Diff:
@@ -1,2 +1,2 @@
-[#<UserNote id: nil, user_id: 2, creator_id: nil, note: "Magnam quas fugit nihil.", created_at: nil, updated_at: nil, follow_up: nil>]
+:user_notes
我对Rspec很新。有什么帮助吗?
答案 0 :(得分:3)
要在rspect测试中访问实例变量@foo
,请使用assigns(:foo)
expect(assigns(:user_notes)).to eq [note]
您还错过了对该操作的调用。它应该是......
get :index
expect(assigns(:user_notes)).to eq [note]
最后,let(:note) { build(:user_note) }
是懒惰的,并且在引用变量之前不会执行...这只是在get:index之后,并且build不会保存到数据库中case,所以把它改成......
let!(:note) { create(:user_note) }