/ / È possibile utilizzare Nightwatch per testare le rotaie? - ruby-on-rails, ruby, selenio, rspec, nightwatch.js

Si può usare Nightwatch per testare le rotaie? - ruby-on-rails, ruby, selenio, rspec, nightwatch.js

Un appaltatore per la nostra startup ha installato ilQuadro di prova Nightwatch basato sul selenio, dal momento che il nostro stack è React-heavy. Ma mi ha detto che potrebbe anche essere usato per testare il nostro codice Rails. Un nuovo appaltatore ha dichiarato, al contrario, che Nightwatch non poteva eseguire test unitari dei nostri controller e modelli Rails (che per me ha senso).

Chi ha ragione? Supponiamo che il primo programmatore avesse in mente solo che avremmo eseguito test end-to-end (alcuni input hanno portato a determinati output) e che non abbiamo bisogno di testare i dettagli del codice Rails? Come sospettiamo e come afferma il nuovo appaltatore, abbiamo bisogno di RSpec o di qualche altro framework di test basato su Ruby per gestire il nostro codice Rails, se vogliamo essere un negozio TDD?

risposte:

4 per risposta № 1

Sì, può essere usato per testare Rails. Ma solo dall'esterno (solo attraverso il browser). Quindi nessuna unità / controller / test di visualizzazione. Avrai bisogno di MiniTest o Rspec per quelli.

I miei due centesimi (vedi anche commento di @SteveCarey): Dato che preferisco attenermi a ciò che viene fornito con Rails e utilizzare il minor numero di strumenti esterni possibili:

Dai un'occhiata ai test di sistema che sono stati introdotti con Rails 5.1 o, se sei su una versione precedente, vedi se puoi scrivere quei test usando Capybara / Test di integrazione.

Aggiornare:

Puoi trovare maggiori dettagli sul framework di test qui: http://guides.rubyonrails.org/v4.1/testing.html#brief-note-about-minitest

Era Test :: Unit e al giorno d'oggi è Minitest. Ma le basi sono le stesse, quindi non importa.

Un altro popolare framework di test è RSpec. Che è possibile utilizzare al posto di Minitest / TestUnit se lo si desidera. Preferisco Minitest ma ci sono pro e contro per entrambi i framework.

Rails 4.2 è stato fornito con test unitari, test funzionali / controllori e test di integrazione. La cosa incorporata che più somiglia a Nightwatch sono i test di integrazione: http://guides.rubyonrails.org/v4.1/testing.html#integration-testing

Puoi anche guardare librerie come Capybara (https://github.com/teamcapybara/capybara) che si definisce un framework di test di accettazione. Si integra perfettamente con TestUnit / Minitest / Rspec.