gpt4 book ai didi

ruby-on-rails - Rails 5.1 使用 RSpec 配置内置系统测试

转载 作者:数据小太阳 更新时间:2023-10-29 06:46:06 24 4
gpt4 key购买 nike

看完RailsConf video on ActionDispatch::systemTestCase ,我很高兴将它整合到我当前的应用程序中。目前我们的测试套件设置使用以下内容:

很难让配置适用于我们当前的设置,但我们最终成功了,这在很大程度上要归功于 Avdi Grimm 的一篇文章,标题为:Configuring database_cleaner with Rails, RSpec, Capybara, and Selenium .

我希望使用在 rails 5.1 中发布的 rails 的内置系统测试。由于 rails 现在内置了系统测试:我需要担心的配置如下:

  • rspec
  • factory_girl

那是因为 ActionDispatch::systemTestCase 负责 capybaradatabase_cleaner,并且它已经为 配置好了selenium 驱动程序。

例如:目前我的feature specs是这样写的(RSpec上下文中的Capybara):

#spec/features/blogs/creating_blogs_spec.rb
require "rails_helper"

RSpec.feature "Logged in User can create a blog" do
before do
create(:logged_in_user)
end

scenario "successfully", js: true do
...
end
end

这就是配置了 rspecdatabase_cleanerfactory_girl 的测试套件的典型集成/功能/系统规范, 和 capybara 。我想将其转换为使用 ActionDispatch::systemTestCase

但是:我想在 RSpec 的上下文中使用 ActionDispatch::systemTestCase

上面的 RailsConf 视频展示了 ActionDispatch::systemTestCase 如何在 Rails 的默认测试套件布局环境中工作(例如:minitest,测试位于 test 目录),但它并没有讨论如何在 RSpec 的上下文中使用 ActionDispatch::systemTestCase。

我找不到任何关于使用 RSpec 配置 Rails 内置系统测试的资源,包括在 system testing section of the rails guides 中。 .这可能吗?

最佳答案

2017 年 10 月更新:

Rspec-rails 3.7 现在与系统测试完全兼容。

基本上,这就是您需要添加到 spec_helper.rb 中的所有内容:

RSpec.configure do |config|
config.before(:each, type: :system) do
driven_by :rack_test
end

config.before(:each, type: :system, js: true) do
driven_by :selenium_chrome_headless
end
end

https://medium.com/table-xi/a-quick-guide-to-rails-system-tests-in-rspec-b6e9e8a8b5f6

关于ruby-on-rails - Rails 5.1 使用 RSpec 配置内置系统测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44269257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com