用rspec测试动作文本

问题描述 投票:1回答:1

使用动作文本,我有一个名为 drill

appmodelsdrill.rb

class drill
   has_rich_text :content
end

我有一个使用trix编辑器的表单。

<%= form_for @drill do |f| %>
  <div class="field">
    <%= f.label :content %>
    <%= f.rich_text_area :content %>
  </div>
  <%= f.submit "Update", class: 'btn btn-primary' %>
<% end -%>

这将产生一个输入文本的空间,标签为 "内容",输入的id为 drill_content_trix_input_drill, a trix-editor 元素的id为 drill_content. 在rspec功能规范中,我尝试了以下几点

it 'fills the content field', js: true do
    ...
    fill_in 'drill_content_trix_input_drill', with: 'Do full swing very slowly'
end

但这样一来

Capybara::ElementNotFound:
       Unable to find field "drill_content_trix_input_drill" that is not disabled

我也试过 fill_in 'Content'fill_in 'drill_content' 但看到类似的错误。我该如何解决这个问题?

rspec ruby-on-rails-6 actiontext
1个回答
0
投票

给你

  def fill_in_trix_editor(id, with:)
    find(:css, "##{id}").click.set(with)
  end
© www.soinside.com 2019 - 2024. All rights reserved.