控制器:
class FooController < ApplicationController
def create
end
end
控制器规格:
describe FooController
it "does bar" do
Foo.should_receive(:new).with("text" => "Lorem ipsum")
post :create, foo: { "text" => "Lorem ipsum" }
end
end
当我运行时,rspec说这是成功的。但是,Foo.new
方法永远不会调用create
。但是,如果我将Lorem ipsum
函数调用中的post
更改为其他内容,则会失败。我希望这会失败,如果我将Foo.new(params[:foo])
添加到create
方法的主体,则会成功。为什么不是这样?
答案 0 :(得分:2)
看起来你在描述块上缺少“do”。尝试:
describe FooController do
it "does bar" do
Foo.should_receive(:new).with("text" => "Lorem ipsum")
post :create, foo: { "text" => "Lorem ipsum" }
end
end