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

时间:2013-01-23 06:35:51

标签: ruby-on-rails post rspec get capybara

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

undefined method `get' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1::Nested_1::Nested_1::Nested_1:0x007f9cce9adc20>

以下是触发错误的代码:

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

对此有何解决方法?

1 个答案:

答案 0 :(得分:4)

您不会将规范/请求目录重命名为规范/功能:您有两者

  • 使用Capybara DSL(visit等)并且通常对page断言的测试进入规范/功能
  • 使用机架测试DSL(get等)并通常对response断言的测试进入规范/请求

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