gpt4 book ai didi

ruby-on-rails - 如何使用 RSpec 测试 ActionText?

转载 作者:行者123 更新时间:2023-12-03 14:32:55 42 4
gpt4 key购买 nike

我正在尝试编写一个 RSpec 系统测试,其中涉及在页面上填写 ActionText/Trix 字段。

好像ActionText::SystemTestHelper定义为 here可以帮助完成这项任务,但到目前为止我还没有成功实现它。

我的 RSpec 测试如下所示:

# spec/system/add_job_posting_spec.rb

require 'rails_helper'

RSpec.describe 'adding a job posting', type: :system do
let(:user) { FactoryBot.create :user }

before do
login_as(user)
visit new_job_posting_path
end

context 'with valid information' do
let(:valid_job_posting) { FactoryBot.create :job_posting }

scenario 'creates a job posting', js: true do
fill_in 'Title', with: valid_job_posting.title
fill_in_rich_text_area 'Description', with: 'Job Info'

click_button 'Submit'
expect(page).to have_content 'Job was successfully created.'
end
end
end

我也尝试过创建一个 RSpec 支持文件

# spec/support/action_text.rb

RSpec.configure do |config|
config.include ActionText::SystemTestHelper, type: :system
end

当我使用

bundle exec rspec spec/system/add_job_posting_spec.rb

我收到以下错误
未初始化的常量 ActionText::SystemTestHelper

当我尝试删除位于 spec/support/action_text.rb 的文件时我收到了这个错误:

未定义的方法 `fill_in_rich_text_area'

我也尝试只使用常规 fill_in RSpec 方法可以完全避免这种情况,然后得到:

找不到未禁用的“描述”字段

尽管测试被标记为 js: true我有另一个 RSpec 支持文件来处理设置如下:

# spec/support/system/driver.rb

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

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

最佳答案

spec/rails_helper.rb :
需要帮助文件并将模块包含在系统规范中:

require "action_text/system_test_helper"

RSpec.configure do |config|
config.include ActionText::SystemTestHelper, type: :system
end

您现在可以使用 fill_in_rich_text_area帮助您的系统规范:
fill_in_rich_text_area "page_content", with: "Some content."
…在哪里 "page_content"是 trix-editor 的 id。
富文本区域也可以通过占位符属性的值、aria-label 属性的值、标签中的文本或输入的名称来找到。
如果页面上只有一个编辑器,则可以省略第一个参数,如下所示:
fill_in_rich_text_area with: "Some content."

关于ruby-on-rails - 如何使用 RSpec 测试 ActionText?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57319708/

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