Mic*_*dry 4 ruby rspec ruby-on-rails
我是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, :conditions => ["url = :url", {:url => "category-name"}]).and_return(@category)
end
end
end
Run Code Online (Sandbox Code Playgroud)
now*_*owk 10
您对该请求的调用应该在任何之后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
Run Code Online (Sandbox Code Playgroud)
此外,您希望至少在此特定测试中使用调用控制器方法本身的请求方式.
所以
post "action_name"
get "action_name"
update "action_name"
delete "action_name"
Run Code Online (Sandbox Code Playgroud)
代替
controller.action_name
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7387 次 |
| 最近记录: |