如何编写没有RoutingError的RefineryCMS控制器测试

时间:2012-10-27 17:50:31

标签: ruby-on-rails-3 rspec2 refinerycms

像这样的Rspec测试(实际上来自RefineryCMS自己的测试套件)

require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')

module Refinery
  describe FastController do
    it "should render the wymiframe template" do
      get :wymiframe
      response.should be_success
    end
  end
end

导致以下错误:

Failure/Error: get :wymiframe
ActionController::RoutingError:
  No route matches {:controller=>"refinery/fast", :action=>"wymiframe"}
# ./spec/controllers/fast_controller_spec.rb:6:in `block (2 levels) in <module:Refinery>'

在这种情况下,我使用炼油厂2.0.8和Rspec 2.11,运行rake路线后的相关部分如下所示:

wymiframe GET     /wymiframe(/:id)(.:format)        refinery/fast#wymiframe

我尝试了一些其他控制器Rspecs也因路由错误而失败。我当然正在尝试为我自己的额外方法编写测试,我正在添加到vanilla Refinery控制器中,但我想我是否可以看一下控制器测试是否适用于全新的炼油厂安装。

这一定是一个简单的错误!有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我意外地偶然发现了这件事。而不是:

get :wymiframe

我需要使用:

get :wymiframe, { use_route: :any_old_thing }

我不知道为什么会这样 - 特别是因为对于“any_old_thing”,我真的没有使用任何有意义或连接的tomy项目。但是,它似乎有效,现在我可以测试我的控制器了。