因此,Rails 会在 test/function
目录中为 Controller 生成一些功能测试。这些测试扩展自 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 以用于功能测试。正确的做法是什么?
最佳答案
你不会使用 capybara ,因为那是网页工具。功能测试不涉及这一点。您只需要证明您的 Controller 逻辑具有正确的行为即可。对于 RSpec 就足够了。
参见http://rubydoc.info/gems/rspec-rails/frames Controller 规范部分。
关于ruby-on-rails - 在 Rails 3.x 功能测试中使用 Capybara 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9362295/