2015-04-17 6 views
6

che sto cercando di capire come esattamente per implementare questa funzionalità di Poltergeist nei miei test Capybara esistenti, e non sto avendo alcuna fortuna dopo aver letto la documentazione qui: https://github.com/teampoltergeist/poltergeistCome faccio a verificare gli errori Javascript usando capibara e poltergeist?

ho inserito il codice qui sotto, ma quando eseguo i miei test non vedo alcun avviso sugli errori JS quando so che ci sono errori JS nella console. Mi sto perdendo qualcosa? Devo passare un comando specifico nel terminale per assicurarmi che questo controlli gli errori JS? Grazie!

require 'capybara/poltergeist' 
Capybara.javascript_driver = :poltergeist 

options = {js_errors: true} 
Capybara.register_driver :poltergeist do |app| 
    Capybara::Poltergeist::Driver.new(app, options) 
end 
+0

Perché hai impostato js_errors su false? –

+0

Ah, scusate, ho copiato/incollato questo dalla sorgente in cui l'ho trovato (un altro thread SO). L'ho modificato su true nel mio codice e non visualizzo ancora gli avvisi relativi agli errori JS quando eseguo –

risposta

3

Mi sono imbattuto nel tuo post dopo aver cercato su Google una domanda simile. Nel mio caso avevo iniziato con il webkit come driver in capibara. Avevo letto un post sul blog che suggeriva il seguente codice, che utilizzava il matcher "have_errors" per catturare qualsiasi errore js.

it 'should not have JavaScript errors', js: true do  
visit(root_path)  
expect(page).to_not have_errors   
end 

Nel caso in cui si fa riferimento a qualcosa di simile, non c'è bisogno di utilizzare alcun metodo specifico per verificare quando si utilizza poltergeist. Puoi vedere il mio codice che mostra ciò che ho cambiato.

https://github.com/alaghu/learn_jquery/compare/dev...1d6be6dfd500

In sostanza, ogni prova controlla automaticamente se la pagina contiene errori. Ho solo dovuto introdurre js: vero nei miei test. Ho verificato ciò intenzionalmente errando i file js per convalidare questi test.

Spero che questo sia stato utile.

+5

Ciò non funziona in Poltergeist. 'previsto # per rispondere a 'has_errors?'' Inoltre, il collegamento è interrotto. – max

Problemi correlati