RSpec vs Cetriolo (RSpec storie)

Quando devo usare le specifiche per applicazione Rails e quando Cetriolo (ex rspec-storie)? So quanto sia il lavoro e utilizzare attivamente le specifiche del corso. Ma si sente ancora un po ‘ strano usare il Cetriolo. Il mio attuale punto di vista su questo, è che è più comodo usare il Cetriolo quando si sta implementando l’applicazione per il cliente e non capisco come tutto il sistema dovrebbe funzionare in sicurezza.

Ma se io sto facendo il mio progetto? Per la maggior parte del tempo, so come le parti del sistema di interagire. Tutto quello che devi fare è scrivere un mucchio di unit test. Quali sono le possibili situazioni in cui avrei bisogno di Cetriolo poi?

E, come corrispondente seconda domanda: devo scrivere specifiche se scrivo Cetriolo storie? Non sarebbe doppio test della stessa cosa?

  • Come mai ogni singolo [Chiuso] domanda che ho incontrato si è chiuso come “non costruttivo” di Bill la Lucertola E, allo stesso tempo, la domanda è: con voto positivo molte volte !?! che cosa mi manca ?
  • Sono totalmente d’accordo. Io sono ancora molto confuso dove postare domande come “qual è la cosa migliore pratica per fare XXX”.
  • Sono d’accordo, mi imbatto in buone domande con penetranti, le risposte utili per tutto il tempo, TANTO che sono stati chiusi per un motivo o un altro.
  • Ho trovato questa domanda nel 2017, perché è ancora rilevante, e ancora una grande domanda, con grandi risposte. Inoltre non invitare l’opinione dei quadri in questione sono stati progettati principalmente le stesse persone, per due completamente separati preoccupazioni… ma c’è bisogno di un po ‘ di esperienza per sapere che.
InformationsquelleAutor snitko | 2008-12-26

 

6 Replies
  1. 114

    Se non l’hai già, si potrebbe desiderare di check-out Dan North, ottimo articolo, Cosa c’è in una Storia? come un punto di partenza.

    Abbiamo due utilizzi principali di Cetriolo storie. Primo, perché la storia è molto specifico che aiuta a focalizzare il proprietario del prodotto articolazione di funzioni che egli vuole costruire. Questo è il “token per una conversazione” storie, e sarebbe utile se non abbiamo implementato le storie in codice. In secondo luogo, quando il processo sta funzionando abbastanza bene che ci sono storie complete prima iniziamo a scrivere la caratteristica più un ideale che ci sforziamo di una realtà quotidiana), avete i vostri criteri di accettazione precisato in modo chiaro e si sa esattamente cosa e quanto costruire.

    Nel nostro Rotaie di lavoro, Cetriolo storie non sostituire per rspec unit test. I due vanno mano nella mano. In pratica, i test unitari tendono a guidare lo sviluppo di modelli e controller, e le storie tendono a guidare lo sviluppo della vista (tendiamo a non scrivere rspec per il nostro punto di vista) e di fornire un buon test per l’applicazione nel suo complesso dal punto di vista dell’utente.

    Se stai lavorando solo, l’aspetto della comunicazione non può essere interessante per voi, ma il test di integrazione si ottiene dal Cetriolo potrebbe essere. Se si prende vantaggio di webrat, la scrittura di Cetriolo può essere rapido e indolore per un sacco di funzionalità di base.

    • Stai fondendo due problemi distinti; 1) e ‘ buona per fare integrazione e test di accettazione, e 2) il cetriolo è un ottimo strumento per scrivere quelle prove. 1 – sì, è chiaramente una buona idea. Per 2, raramente è più efficiente per un team di sviluppo per scrivere i test in una lingua in modo molto indiretto, quando si può scrivere molto leggibile, integrazione e test di accettazione in rspec e capibara (o – dio non voglia si potrebbe indagare Ruby libreria standard – test/unità o minitest, insieme con il capibara). Vedi il post che Jack Kinsella link qui sotto.
    • Totalmente d’accordo con te Abie! Cetriolo integrazione è fondamentale!
  2. 26

    Pensare ad esso come un ciclo:

    Scrivere il Cetriolo funzionalità, mentre in via di sviluppo i pezzi per tale caratteristica, scrittura specifiche per completare i singoli componenti. Continuare completato specifiche, fino a quando hai scritto abbastanza funzionalità per la funzione di passaggio, quindi scrivere la funzione successiva.

  3. 21

    Prendere il mio è che è una cattiva idea usare il Cetriolo nella maggior parte dei casi a causa dei costi in termini di produttività sua sintassi comporta su di voi. Ho scritto molto sull’argomento, in Perché Perdere Tempo Con Il Cetriolo Test?

    • Ho letto il tuo articolo e come fan di cetriolo, devo dire che sono d’accordo con molti punti si citi nel tuo articolo. Anche se, io continuo a pensare che il cetriolo è un buon modo nel formalizzare le prove e che li rende facilmente leggibile da parte di estranei.
    • Jack – post fantastico. Grazie tanto per scrivere, mi hai risparmiato la fatica di farlo da me.
    • huug – potrebbe essere un buon modo di esporre le prove di “outsider”, ma tu mi mostri un non-membro del nostro team tecnico che vuole leggere il test, e io vi mostrerò una squadra che sta sprecando il suo bilancio. Inoltre, io sono ancora a lavoro con un non-membro tecnico di un progetto che avrebbe voglia di sprecare il loro tempo, le prove di lettura. Non so, forse sono fortunato…
    • Downvoted. Trovo che descrive le funzionalità utente termini è utile per me, come sviluppatore, indipendentemente dal fatto che gli utenti sempre di leggere il mio Cetriolo storie. Ecco perché io uso il Cetriolo su tutti i miei progetti e incoraggiare gli altri a fare altrettanto.
  4. 8

    Un Cetriolo storia è più una descrizione del problema generale, l’applicazione è solving, piuttosto che se i singoli bit del codice del lavoro (ad esempio test di unità).

    Come Abie descrive, è quasi un elenco di requisiti che l’applicazione deve soddisfare, ed è molto utile per la comunicazione con il cliente, oltre ad essere direttamente verificabili.

    • Esattamente. Cetriolo descrive l’utilizzo dell’applicazione. E. g. “Io clicca qui e mi aspetto di ottenere questo o quel risultato”. Le specifiche sono più sul ‘modello’ di livello. Come, quando chiamo che metodi come parametri, me lo aspetto per tornare a questo risultato.
  5. 6

    Oggi è possibile utilizzare rspec con Capibara e Selenio Webdriver e di evitare di dover costruire e mantenere tutte le Cetriolo storia parser. Ecco cosa mi sento di raccomandare:

    1. Scrivere la tua storia
    2. Utilizzando RSpec, vorrei creare un test di integrazione ex: spec/integrazioni/socks_rspec.rb
    3. Poi vorrei creare un test di integrazione, che include un nuovo descrivere e blocco per ogni scenario
    4. Poi vorrei implementare la funzionalità minima richiedono per ottenere il test di integrazione e, mentre andando più in profondità indietro (nel controller e modelli, ecc) vorrei TDD su controller e modelli.
    5. A tornare up il test di integrazione deve passare e si può continuare ad aggiungere procedura per il test di integrazione
    6. ripetere

    Una cosa da notare, tuttavia, è che il controller di integrazione e test di sovrapposizione che potrebbe non essere necessario, pertanto, è necessario utilizzare il vostro giudizio in modo non sprecare il tuo tempo.

    Inoltre, una volta trovato il tuo groove troverete che è più divertente di sviluppare utilizzando BDD, fino ad allora non sentitevi in colpa se non ti senti come si sta facendo è perfetto e non pensare. Farete un grande!

  6. 2

    Ma se io sto facendo il mio progetto? Per la maggior parte del tempo, so come le parti del sistema di interagire. Tutto quello che devi fare è scrivere un mucchio di unit test. Quali sono le possibili situazioni in cui avrei bisogno di Cetriolo poi?

    Hai ancora bisogno di Cetriolo. Hai bisogno di documentare come si vede il sistema di lavoro, e avete bisogno di assicurarsi che non hai rotto la funzionalità quando si cambiano le cose.

    In altre parole, è necessario Cetriolo storie per gli stessi motivi per cui avete bisogno di test di unità — lavorano solo su un livello di astrazione superiore.

    • Non direi che il Cetriolo è stato essenziale, ma certamente dovrebbe avere un qualche tipo di test di integrazione, dal momento che gli unit test sono normalmente utilizzati per la sperimentazione di classi in isolamento.
    • Destra. E nella maggior parte dei casi, il Cetriolo è il modo più bello di scrittura di test di integrazione.

Lascia un commento