ssm*_*one 13 rspec ruby-on-rails
在我的控制器规范中,我这样做:
it "should create new message" do
Client.should_receive(:create).with({:title => 'Mr'})
post 'create' , :client => {:title => "Mr" }
end
Run Code Online (Sandbox Code Playgroud)
......在我的控制器里,我正在......
def create
client = Client.create(params[:client])
end
Run Code Online (Sandbox Code Playgroud)
但是,这失败并出现以下错误消息:
expected: ({:title=>"Mr"})
got: ({"title"=>"Mr"})
Run Code Online (Sandbox Code Playgroud)
我想知道为什么会发生这种情况以及如何让它发挥作用
mar*_*cgg 16
这是因为你传递的是符号而不是字符串.这应该解决它:
it "should create new message" do
Client.should_receive(:create).with({:title => 'Mr'})
post 'create' , :client => {"title" => "Mr" }
end
Run Code Online (Sandbox Code Playgroud)
这是一篇关于它的博文:" 理解Ruby符号 "
归档时间: |
|
查看次数: |
17654 次 |
最近记录: |