2010-03-14 10 views
5

Sto iniziando un nuovo progetto per un cliente oggi.Con quale metodo di test? [Rails]

Ho già realizzato alcuni progetti di rotaie, ma non mi sono mai preoccupato di scrivere test per loro. Mi piacerebbe cambiarlo partendo da questo nuovo progetto. Sono consapevole che ci sono diversi strumenti di test, ma sono un po 'confuso su quale dovrei usare.

Ho sentito parlare di RSpec, Mocha, Webrat e Cetriolo. Si prega di tenere presente che non ho mai scritto alcun test regolare, quindi la mia conoscenza dei test in generale è piuttosto limitata.

Come suggeriresti di iniziare?

Grazie!


Grazie per tutte le risposte! Ho pubblicato una domanda correlata che potrebbe interessare a chi guarda questa domanda in futuro. You can find it here.

risposta

4

Preferisco utilizzare Rspec e Cetriolo in combinazione. Preferisco anche Capibara su Webrat.

Rspec è meraviglioso per l'integrazione e la struttura dei binari. È tecnicamente test comportamentali, ma in pratica finisce per sentirsi come test unitari. Permette anche di raggruppare e definire "specifiche", o test rspec, in qualsiasi struttura che ti piace con i blocchi "descrivi".

Il cetriolo è di livello superiore. È ciò che tradurrà le tue storie utente in. Per esempio, si può decidere che gli utenti dovrebbero essere in grado di modificare la propria password, quindi dovrete scrivere qualcosa del genere:

Scenario: Change password 
    Given I am logged in 
    And I am on the change password page 
    When I fill in "p4ssw0rd" for "old_password" 
    And I fill in "newp4ssw0rd$$" for "new_password" 
    Then my password should be "newp4ssw0rd$$" 

Se si lavora con un reparto QA, è possibile mostrare le prove a loro, e sapranno immediatamente lo stato di ogni funzione e come funzionerà la funzione. Inoltre, se disponi di tester intraprendenti, possono scrivere autonomamente dei test, anche se non sono programmatori in generale.

1

Tutti hanno una funzione diversa e se ti interessa veramente la qualità del tuo software, li utilizzeresti tutti.

  • RSpec è più per il test dell'unità. Unit Testing sta testando la parte più piccola, di solito i metodi dei tuoi modelli.

  • WebRat è più per il test di funzionalità come l'utente finale proverebbe da un browser. Stai effettivamente testando l'interazione e verifichi se restituisce la vista/i dati corretti.

  • Il cetriolo è più simile al test guidato dal comportamento o al test end-to-end. È più per testare la logica aziendale in base a molti scenari o dati diversi.

Naturalmente è possibile utilizzarli tutti insieme. Ad esempio, posso utilizzare Cucumber per eseguire test end-to-end e richiedere test funzionali con WebRat e Rspec. Speriamo che questo ti dia l'idea di iniziare.

Problemi correlati