在我的控制器规范中我这样做:
it "should create new message" do Client.should_receive(:create).with({:title => 'Mr'}) post 'create',:client => {:title => "Mr" } end
…在我的控制器我在做…
def create client = Client.create(params[:client]) end
expected: ({:title=>"Mr"}) got: ({"title"=>"Mr"})
我想知道为什么会发生这种情况,以及如何让它工作
解决方法
这是因为你传递一个符号,而不是一个字符串.这应该解决它:
it "should create new message" do Client.should_receive(:create).with({:title => 'Mr'}) post 'create',:client => {"title" => "Mr" } end
这是一个关于它的博客:“Understanding Ruby Symbols”