2012-10-31 18 views
5

Abbiamo un team di automazione di test isolato responsabile per l'automazione di soli casi di test funzionali Watir + Cetriolo. La loro base di codice non è collegata all'app per rails su cui altri sviluppatori stanno lavorando, ma tenuta separata. Abbiamo automatizzato diversi casi di test fino ad ora, e ora quale problema abbiamo, alcuni test case (watir/cetriolo specs) richiedono che alcuni dati siano preesistenti in db, quindi (testcase) dovrebbe concentrarsi solo sul problema stmt, e non creare qualsiasi dato: richiede se stesso.data factory per cetriolo, watir

Esempio, diciamo se deve controllare se la valutazione funziona per un post, richiede che un oggetto post debba preesistere e controlla solo la valutazione. E non creare il primo oggetto post e poi controllarne la valutazione.

Quali sono gli approcci migliori qui? Come se avessimo fixture e factory-girl per il test delle rotaie, cosa c'è per le specifiche cetriolo? Oppure useremo le funzioni solo qui? Questi tester potrebbero non avere idea di tutti i modelli esistenti, ne sono a conoscenza in modo da utilizzare le fixture richiamando l'interfaccia Rails-Model.

La mia idea era che, quando scriviamo un file di caratteristiche, non dovrebbe puntare o parlare di alcun modello che assomigli a meta-cose. I test case Watir/specs dovrebbero solo essere a conoscenza di "Web-application"/browser solo come interfaccia per parlare/gestire l'applicazione. Non dovrebbero conoscere altre interfacce (dispositivi/modelli). Quindi dovrebbero creare i propri dati da soli, facendo uso della singola interfaccia che conoscono.

Ancora una volta, quello che voglio sapere, c'è qualche lib/codice ruby, dati nomi di tabelle, nomi di colonne e valori (tutti i più simili ai dispositivi yml), insieme ai parametri db. Li inserirà semplicemente in db, senza contesto di ambiente di rotaie. E così i tester che stanno avendo il loro ambiente isolato dalle rotaie, gli sviluppatori web potrebbero lavorare da soli. Infissi di rotaie o ragazze di fabbrica sembrano essere ben accoppiati con le rotaie. O sono errato?

+0

Ma chi dice che Factory Girl è solo per rspec? Funziona anche con cucs. http://collectiveidea.com/blog/archives/2010/09/09/practical-cucumber-factory-girl-steps/ – Chirantan

risposta

1

Come ha detto Chirantan, potresti usare la ragazza di fabbrica con il cetriolo. Come richiesto dalle tue fabbriche in unità di test o RSpec, puoi fare lo stesso nel file env.rb di cetriolo o in qualsiasi file di configurazione personalizzato.

http://robots.thoughtbot.com/post/284805810/gimme-three-steps

http://www.claytonlz.com/2010/03/zero-to-tested-with-cucumber-and-factory-girl/

http://www.andhapp.com/blog/2009/11/07/using-factory_girl-with-cucumber/

+0

se posso usare Factory girl, allora perché non gli infissi? destra? –

+1

Sì, è possibile utilizzare anche i dispositivi. – hindenbug

-1

Quando si utilizza il cetriolo, l'istruzione Dato imposta la situazione di test su:

Given I have a basic user with a password 

e il Quando dichiarazione innesca il test:

When the user logs in 

e l'allora controlli istruzione risultati delle prove

Then they see the basic menu 

I dati viene caricato nella dichiarazione Dato.

+0

Prepara l'ambiente per ciò che è prima dell'avvio del test. Dato che sono alto 7 piedi, quando vado attraverso la porta, dovrei sbattermi la testa. Il dato mi fa 7 piedi di altezza prima dell'inizio del test. Il momento in cui deve passare attraverso la porta. L'allora fa in modo che io mi sbatti contro la testa. Non potevo fare il test se non fossi alto 7 piedi.Idealmente, sarebbe una chiamata al database per far esistere l'utente e 7 piedi di altezza. Spesso l'impostazione è definita prerequisito di test. Con rspec, di solito è un prima: prima o poi: tutto. In test: unit, è un setup(). –