【发布时间】:2014-01-30 07:23:14
【问题描述】:
我有一个Page 资源,pages_controller.rb 文件中的create 操作如下所示:
def create
@page = Page.new(page_params)
if @page.save
flash[:notice] = "#{@page.name} was created successfully."
redirect_to pages_url
else
render 'new'
end
end
private
def page_params
params.require(:page).permit(:name, :content)
end
以及 pages_controller_spec.rb 文件中的以下测试:
describe PagesController do
describe "POST Create'" do
it "creates a new page" do
Page.should_receive(:new)
post :create, page: {name: "Foo", content: "Bar"}
end
end
end
这会产生以下错误:undefined method 'save' for nil:NilClass
我刚刚开始使用 RSpec;所以肯定我要么犯了一个错误,要么我忽略了一些简单的事情。另外,我正在关注“RSpec Book”,它继续添加:page = mock_model(Page).as_null_object 就在Page.should... 之前,但我仍然遇到同样的错误。有任何想法吗?提前致谢。
【问题讨论】:
标签: ruby-on-rails ruby rspec rspec-rails