0

アプリケーションでコントローラーをテストしており、コントローラーに次のコードがあります。

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 を間違って使用しているように感じますが、解決方法がわかりません。何か案は?

実際にブラウザから呼び出すと、完全に機能しているように見えることを付け加えておきます。

4

1 に答える 1

1

コントローラーのテストでは、ルート パスではなく名前でアクションを呼び出します。

get :show, type: 'include', format: 'json'
于 2012-12-12T18:33:25.710 に答える