App getestet werden: CakePHP App läuft auf einem Vagrant vmFernprüfung mit Capybara-mechanize: Form Einreichung Ergebnisse in falscher URL (404 => Net :: HTTPNotFound)
App die Prüfung tun: lokal (im Grunde leer) Rails-Anwendung mit capybara-mechanize
10 examples, 1 failure
Der Fehler ist:
404 => Net::HTTPNotFound
Lassen Sie uns sagen, dass meine vm die App auf
läuft, hatDas Fehlerszenario wird auf der Homepage angezeigt, meldet sich an, klickt auf Neues erstellen, füllt das Formular aus und klickt auf Speichern.
Der Test sucht dann nach den Informationen, die auf der zurückgegebenen Seite sein sollten (wenn sie korrekt gespeichert wurden).
Der Code läuft bis zur Formularübergabe ohne Probleme, aber dann wird die Speicherung der URL seltsam.
Statt von
gehen'www.domain.comx/something/new'
zu
'www.domain.comx/something/create'
Es wird
'www.domain.comx/something/something/create'
und den Fehler zu werfen.
Irgendwo im Code gibt es einen Ort, an dem es das "Etwas" in der URL dupliziert.
Was könnte dieses Problem verursachen?
Ich habe versucht, in Redirects und Dinge zu suchen, aber ich kann nicht scheinen, eine Lösung zu finden.
Die App ist live und wurde von einem Team von 25 (ish) Menschen seit fast 5 Jahren verwendet. Der Test sollte bestanden werden.
Hier ist die Spur, falls das hilft:
# /Users/ViviPoit/.rvm/gems/ruby-2.3.0/gems/capybara-mechanize-1.5.0/lib/capybara/mechanize/browser.rb:125:in `rescue in process_remote_request'
# /Users/ViviPoit/.rvm/gems/ruby-2.3.0/gems/capybara-mechanize-1.5.0/lib/capybara/mechanize/browser.rb:103:in `process_remote_request'
# /Users/ViviPoit/.rvm/gems/ruby-2.3.0/gems/capybara-mechanize-1.5.0/lib/capybara/mechanize/browser.rb:43:in `block (2 levels) in <class:Browser>'
# /Users/ViviPoit/.rvm/gems/ruby-2.3.0/gems/capybara-2.16.1/lib/capybara/rack_test/browser.rb:69:in `process'
# /Users/ViviPoit/.rvm/gems/ruby-2.3.0/gems/capybara-2.16.1/lib/capybara/rack_test/browser.rb:41:in `process_and_follow_redirects'
# /Users/ViviPoit/.rvm/gems/ruby-2.3.0/gems/capybara-2.16.1/lib/capybara/rack_test/browser.rb:32:in `submit'
# /Users/ViviPoit/.rvm/gems/ruby-2.3.0/gems/capybara-2.16.1/lib/capybara/rack_test/form.rb:80:in `submit'
# /Users/ViviPoit/.rvm/gems/ruby-2.3.0/gems/capybara-mechanize-1.5.0/lib/capybara/mechanize/node.rb:8:in `click'
# /Users/ViviPoit/.rvm/gems/ruby-2.3.0/gems/capybara-2.16.1/lib/capybara/node/element.rb:143:in `block in click'
# /Users/ViviPoit/.rvm/gems/ruby-2.3.0/gems/capybara-2.16.1/lib/capybara/node/base.rb:85:in `synchronize'
# /Users/ViviPoit/.rvm/gems/ruby-2.3.0/gems/capybara-2.16.1/lib/capybara/node/element.rb:143:in `click'
# /Users/ViviPoit/.rvm/gems/ruby-2.3.0/gems/capybara-2.16.1/lib/capybara/node/actions.rb:25:in `click_link_or_button'
# /Users/ViviPoit/.rvm/gems/ruby-2.3.0/gems/capybara-2.16.1/lib/capybara/session.rb:810:in `block (2 levels) in <class:Session>'
# /Users/ViviPoit/.rvm/gems/ruby-2.3.0/gems/capybara-2.16.1/lib/capybara/dsl.rb:50:in `block (2 levels) in <module:DSL>'
Hier ist eine verdummte Version des HTML-Formulars:
<form id="create" method="post" action="something/create">
<div class="form-group col-md-4">
<div class="form-group">
<label for="usuario_email">E-mail *</label>
<input type="email" name="data[usuario][email]" id="usuario_email" class="form-control">
</div>
</div>
<div class="form-group col-md-4">
<label for="usuario_nome">Nome *</label>
<input type="text" name="data[usuario][nome]" id="usuario_nome" class="form-control">
</div>
<div class="form-group col-md-4">
<label for="usuario_telefone">Telefone *</label>
<input type="text" name="data[usuario][telefone]" id="usuario_telefone" class="form-control" alt="phone">
</div>
<div class="form-group col-md-6">
<div class="pull-right">
<button type="submit" class="btn btn-success btn-lg" id="salvar">
<span class="glyphicon glyphicon-ok"></span>
</button>
</div>
</div>
</form>
Was ist der HTML-Code des Formulars? –
Ich habe gerade die HTML des Formulars zur Frage hinzugefügt. – vivipoit