2017-04-02 83 views
0

我一直在冲浪谷歌和这个网站吨,但无法得到解决这个错误的工作。如果有人可以帮助它,将不胜感激。Rspec错误:ActionController :: UrlGenerationError:没有路由匹配

所有控制器测试失败,消息大致相同。

enter image description here

它看起来对我来说,它需要的所有数据是存在的,但它仍然失败。为了使这个测试能够正常工作,它需要的是路由中的帖子ID,没有登录或类似的东西。

如果我明白导致这个错误的原因,我相信我可以让其余的工作。下面是一个例子(即创建上述错误之一)

describe "GET #show" do 
it "assigns the requested post as @post" do 
    post = FactoryGirl.create(:post) 
    get :show, params: {id: post.to_param}, session: valid_session 
    expect(assigns(:post)).to eq(post) 
end 
end 

有一个路由排队在posts控制器的show动作......

enter image description here

..所以我有点不确定为什么这个测试(和控制器的所有测试)都失败了。

自从2013年左右起,我就查看了这里的问题,处理了这个问题,他们没有为我解决问题。我不能得到rspec找到这条路线,所以任何帮助将不胜感激。

+0

你试过这个:'get:show,id:post.to_param,session:valid_session'?你有没有指定'type :::controller'?像这样:'RSpec.describe PostsController,输入::controller' –

回答

0

您不需要将参数放在密钥params下。

describe "GET #show" do 
    it "assigns the requested post as @post" do 
    post = FactoryGirl.create(:post) 
    get :show, { id: post.to_param }, session: valid_session 
    expect(assigns(:post)).to eq(post) 
    end 
end 
+0

谢谢,这确实解决了这个测试。 –

相关问题