capybara:post,在将请求名称的目录更改为function时获取方法不起作用

升级到Capybara的最新版本后,我的所有访问方法都停止了工作,所以我按照一些人提出的解决方案将请求spec目录重命名为“features”。 现在我的访问方法再次起作用,但请求规范中的任何get或post方法都会导致此错误:

undefined method `get' for # 

这是触发错误的代码:

 describe "getting posts" do before { get(forum_posts_path) } it "should respond with a 200" do response.response_code.should == 200 end end 

对此有何解决方法?

您不要将spec / requests目录重命名为spec / features :您同时拥有:

  • 使用Capybara DSL( visit等)并且通常对page断言的测试在spec / features中进行
  • 使用机架测试DSL( get等)并且通常断言response规范/请求中进行

有关详细信息,请参阅此StackOverflow答案 ,特别是那里的外部链接。