Je suis Rails 5.1 et d'essai utilisant le système par défaut Permet de testerTypeError avec assert_text dans capybara Rails 5.1
J'ai le code suivant dans un RetreatTest de classe:
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
Je ne comprends pas pourquoi Je continue à obtenir cette erreur:
Error:
RetreatsTest#test_Create_a_new_Retreat:
TypeError: exception class/object expected
test/system/retreats_test.rb:36:in `block in <class:RetreatsTest>'
Si j'écris assert find('.alert').has_content?('Retreat was successfully saved.')
au lieu de assert_text
tous mes tests passent.
Quelqu'un peut-il m'aider?
modifier 1: sur l'exécution du test avec l'option Backtrace, je reçois le texte suivant:
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>'
Avez-vous plus de la stacktrace pour l'erreur afin que nous puissions voir exactement quelle version de 'assert_text' est appelée? –
Comment faire une trace de pile dans un test système? Une idée? – dhaliman
Puisqu'il s'agit d'une erreur et non d'une exception d'échec de test, vous pouvez essayer d'exécuter vos tests avec l'option: verbose ou: backtrace - 'rails test -b test' –