ruby-on-rails – 使用rspec测试rails控制器
发布时间:2020-12-17 03:51:17 所属栏目:百科 来源:网络整理
导读:我是rails的新手,我正在尝试使用rspec测试控制器.我的第一个测试是在调用show动作时,它应该通过url查找Category. 问题是当我添加存根代码时,我收到以下错误: 未定义的方法`find’for# 我的测试看起来像这样: require 'spec_helper'describe CategoriesCont
我是rails的新手,我正在尝试使用rspec测试控制器.我的第一个测试是在调用show动作时,它应该通过url查找Category.
问题是当我添加存根代码时,我收到以下错误: 未定义的方法`find’for# 我的测试看起来像这样: require 'spec_helper' describe CategoriesController do describe "GET /category-name/" do before(:each) do @category = mock_model(Category) Category.stub!(:find).with(:first,:conditions => ["url = :url",{:url => "category-name"}]).and_return(@category) end it "should find the category by url" do controller.show Category.should_receive(:find).with(:first,{:url => "category-name"}]).and_return(@category) end end end 解决方法
您对请求的调用应该在任何should_receive之后.这是一件紧张的事情.所以它有点像这样,“类别应该收到一些东西,当这种情况发生时”. “发生这种情况”是指请求.
it "should find the category by url" do Category.should_receive(:find).with... get "show",{ your params,if you're sending some in } end 此外,您希望至少在此特定测试中使用调用控制器方法本身的请求方式. 所以 post "action_name" get "action_name" update "action_name" delete "action_name" 代替 controller.action_name (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |