水豚 Rails 5.1 中 assert_text 的类型错误
TypeError with assert_text in capybara Rails 5.1
我是 Rails 5.1,正在使用默认系统测试进行测试
我在 class RetreatTest 中有以下代码:
test "Create a new Retreat" do
visit retreats_url
click_on 'Create a new Retreat'
fill_in "Title", with: "Retreat Title"
fill_in "Tagline", with: "Retreat tagline"
select('Individual', from: 'Type')
fill_in "Description", with: "Retreat Description"
attach_file('Image', Rails.root.join('test', 'images', 'test-1.jpg'))
click_on "Submit"
assert_text("Retreat was successfully saved.")
end
我不明白为什么我总是收到这个错误:
Error:
RetreatsTest#test_Create_a_new_Retreat:
TypeError: exception class/object expected
test/system/retreats_test.rb:36:in `block in <class:RetreatsTest>'
如果我写 assert find('.alert').has_content?('Retreat was successfully saved.')
而不是 assert_text
我所有的测试都会通过。
有人可以帮我解决这个问题吗?
编辑 1:
在 运行 使用回溯选项的测试中,我得到以下信息:
Error:
RetreatsTest#test_Create_a_new_Retreat:
TypeError: exception class/object expected
/Users/dhaliman/.rvm/gems/ruby-2.3.1/gems/capybara-2.14.2/lib/capybara/minitest.rb:52:in `raise'
/Users/dhaliman/.rvm/gems/ruby-2.3.1/gems/capybara-2.14.2/lib/capybara/minitest.rb:52:in `rescue in assert_text'
/Users/dhaliman/.rvm/gems/ruby-2.3.1/gems/capybara-2.14.2/lib/capybara/minitest.rb:48:in `assert_text'
/Users/dhaliman/Code/Workspace AVR WebApp/avr/test/system/retreats_test.rb:36:in `block in <class:RetreatsTest>'
升级到最新的 Capybara (2.14.4) 您目前使用的是 2.14.2,2.14.3 中有一个针对迷你测试断言的修复程序,应该修复不正确的错误,并拥有它 return 正确的错误(找不到文本)
我是 Rails 5.1,正在使用默认系统测试进行测试
我在 class RetreatTest 中有以下代码:
test "Create a new Retreat" do
visit retreats_url
click_on 'Create a new Retreat'
fill_in "Title", with: "Retreat Title"
fill_in "Tagline", with: "Retreat tagline"
select('Individual', from: 'Type')
fill_in "Description", with: "Retreat Description"
attach_file('Image', Rails.root.join('test', 'images', 'test-1.jpg'))
click_on "Submit"
assert_text("Retreat was successfully saved.")
end
我不明白为什么我总是收到这个错误:
Error:
RetreatsTest#test_Create_a_new_Retreat:
TypeError: exception class/object expected
test/system/retreats_test.rb:36:in `block in <class:RetreatsTest>'
如果我写 assert find('.alert').has_content?('Retreat was successfully saved.')
而不是 assert_text
我所有的测试都会通过。
有人可以帮我解决这个问题吗?
编辑 1: 在 运行 使用回溯选项的测试中,我得到以下信息:
Error:
RetreatsTest#test_Create_a_new_Retreat:
TypeError: exception class/object expected
/Users/dhaliman/.rvm/gems/ruby-2.3.1/gems/capybara-2.14.2/lib/capybara/minitest.rb:52:in `raise'
/Users/dhaliman/.rvm/gems/ruby-2.3.1/gems/capybara-2.14.2/lib/capybara/minitest.rb:52:in `rescue in assert_text'
/Users/dhaliman/.rvm/gems/ruby-2.3.1/gems/capybara-2.14.2/lib/capybara/minitest.rb:48:in `assert_text'
/Users/dhaliman/Code/Workspace AVR WebApp/avr/test/system/retreats_test.rb:36:in `block in <class:RetreatsTest>'
升级到最新的 Capybara (2.14.4) 您目前使用的是 2.14.2,2.14.3 中有一个针对迷你测试断言的修复程序,应该修复不正确的错误,并拥有它 return 正确的错误(找不到文本)