我在我的应用程序中测试一个控制器,并在我的控制器中有以下代码:
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,但不知道如何解决它。有什么想法吗?
我应该补充说,当我通过浏览器实际调用它时,它似乎工作得很好。
答案 0 :(得分:1)
在控制器测试中,您通过名称而不是通过路径路径调用操作:
get :show, type: 'include', format: 'json'