【发布时间】:2011-09-23 14:21:09
【问题描述】:
我正在尝试运行这样的测试:
it "render form to update an bundle with a specific id" do
bundle = mock_model(Bundle)
Bundle.stub!(:find).with("1") { bundle }
get :edit, :locale => "en", :id => 1
Bundle.should_receive(:find).with("1").and_return(bundle)
end
来自控制器的代码:
class BundlesController < ApplicationController
# GET /bundles
# GET /bundles.json
.....
# GET /bundles/1/edit
def edit
@bundle = Bundle.find(params[:id])
end
.....
end
但测试失败并显示消息:
BundlesController Bundle 更新渲染表单以更新具有特定 id 的包 失败/错误:Bundle.should_receive(:find).with("1").and_return(bundle) ().find("1") 预计:1次 收到:0次 # ./spec/controllers/bundles_controller_spec.rb:60:in `block (3 levels) in '
谁能帮助我? 谢谢!
【问题讨论】:
-
没有证据表明控制器确实有一个编辑操作,或者编辑操作调用了
Bundle.find。请向我们展示更多代码。 -
我的猜测:使用字符串
"1"代替整数1::id => "1"。
标签: ruby-on-rails ruby rspec controller