在与Capybara一起发送表单时,Newline会被添加到前面

时间:2013-03-11 20:16:35

标签: ruby-on-rails ruby capybara

我在使用Capybara的Rails应用程序中进行了此测试:

within "#register" do
  fill_in "Biography (optionnal)", :with => "Hello world!"
end

click_on "Save"

# Check that form is repopulated with old input
expect(find_field('user_bio').value).to eq('Hello world!')

以下是我从测试中得到的结果:

Failure/Error: expect(find_field('user_bio').value).to eq('Hello world!')   
expected: "Hello world!"
got: "\nHello world!"

我没有手动将换行符添加到user_bio字段。

这可能来自哪里?

编辑1: 在一些谷歌搜索之后,似乎在Github上有一个PR,并且它已合并。所以我猜这不是Capybara的错误。见https://github.com/jnicklas/capybara/commit/755a724d4b10e6841a0eeb58af43375236b33247

1 个答案:

答案 0 :(得分:0)

您可以在保存过滤器之前执行此操作以清除该新行

在您的模型中添加

 before_save :clear_new_lines

 protected
 def clear_new_lines
   self.user_bio = user_bio.gsub("\n",'')
 end