5

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

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

4

1 回答 1

0

您可以执行保存前过滤器以清除该新行

在您的模型中添加

 before_save :clear_new_lines

 protected
 def clear_new_lines
   self.user_bio = user_bio.gsub("\n",'')
 end
于 2013-08-31T03:33:02.847 回答