Rspec GET与路线不匹配

时间:2012-12-12 18:05:40

标签: ruby-on-rails rspec capybara

我在我的应用程序中测试一个控制器,并在我的控制器中有以下代码:

describe CsdlController do
    describe "GET /csdl/inclusive" do
        before do 
            # Create domains that are included
            @domain = create(:validated_domain)
        end
        it "returns a CSDL with valid domains" do
            get "/csdl/include.json"
            response.body.should =~ /#{@domain.text}/
        end
    end
end

我也有以下路线:

match "/csdl/:type" => 'csdl#show'

然而,当我运行规范时,它会给我以下错误:

No route matches {:controller=>"csdl", :action=>"/csdl/include.json"}

我有一种感觉,我在这里错误地使用RSpec,但不知道如何解决它。有什么想法吗?

我应该补充说,当我通过浏览器实际调用它时,它似乎工作得很好。

1 个答案:

答案 0 :(得分:1)

在控制器测试中,您通过名称而不是通过路径路径调用操作:

get :show, type: 'include', format: 'json'