在Rails 3.x功能测试中使用Capybara的正确方法是什么?

时间:2012-02-20 13:56:06

标签: ruby-on-rails ruby capybara

因此Rails为test/functional目录中的控制器生成一些功能测试。这些测试从ActionController::TestCase延伸。

但是在Capybara的网站上,他们只展示了如何通过猴子修补ActionDispatch::IntegrationTest来准备集成测试:

DatabaseCleaner.strategy = :truncation

class ActionDispatch::IntegrationTest
  # Make the Capybara DSL available in all integration tests
  include Capybara::DSL

  # Stop ActiveRecord from wrapping tests in transactions
  self.use_transactional_fixtures = false

  teardown do
    DatabaseCleaner.clean # Truncate the database
    Capybara.reset_sessions! # Forget the (simulated) browser state
    Capybara.use_default_driver # Revert Capybara.current_driver to Capybara.default_driver
  end
end

但是他们没有提到如何设置Capybara用于功能测试。这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

你不会使用Capybara,因为这是一个网页工具。功能测试不涉及这一点。您只需要证明您的控制器逻辑具有正确的行为。对于那个RSpec就足够了。

请参阅http://rubydoc.info/gems/rspec-rails/frames 控制器规格部分。