【发布时间】:2014-02-22 16:10:27
【问题描述】:
我在学习 RSpec 时遇到了一个问题,我不知道我做错了什么。
这是我的控制器代码:
def create
@item = Item.new(item_params)
if current_user
@item.user_id = current_user.id
end
respond_to do |format|
if @item.save
format.html { redirect_to @item, notice: 'item was successfully created.' }
format.json { render action: 'show', status: :created, location: @item }
else
format.html { render action: 'new' }
format.json { render json: @item.errors, status: :unprocessable_entity }
end
end
end
我的控制器规格:
it "renders new page again if validation fails" do
user = User.new(email:"test@email.com", password:"tomandjerry")
sign_in user
post :create, item: { name:"Hi"}
expect(response).to redirect_to("/items/new")
end
我有
include Devise::TestHelpers
在我的 controller_spec 和
config.include Devise::TestHelpers, :type => :controller
在 spec_helper 中。
看起来不错,但我遇到了
←[31m Expected response to be a redirect to <http://test.host/items/new>
but was a redirect to <http://test.host/users/sign_in>.←[0m
错误。
您能否建议我做错了什么?
【问题讨论】:
标签: ruby-on-rails rspec devise