Domanda

Mi chiedo come le persone stiano attualmente ripristinando i loro dati / ripulendo i resti dei test per i test WatiN / Wartir?

Ad esempio, supponiamo che esista un test per aggiungere un utente al sistema e il nome utente deve essere univoco. Ovviamente la prima esecuzione senza alcun utente dovrebbe funzionare correttamente, ma la seconda esecuzione fallirà senza intervento manuale.

È stato utile?

Soluzione

Ci sono un paio di strategie che potresti fare per questo, presumo che tu stia usando WatiN, con i test Nunit o VS Unit per eseguire i tuoi test.

Usa transazioni Un approccio che viene utilizzato durante il test di unità è che "avvolgi" l'intero test in una transazione e al completamento del test eseguono il rollback della transazione. In .net è possibile utilizzare System.Transactions per questo.

Crea una pagina " stub " Crea una pagina nella tua applicazione che utilizza la logica aziendale esistente per eliminare i tuoi dati. Questa pagina dovrebbe essere protetta e idealmente nemmeno implementata nella produzione. Questo è l'approccio che consiglierei.

Chiama un servizio web Sviluppa un servizio Web o chiamane uno direttamente dal livello app dell'applicazione per eseguire l'eliminazione. Probabilmente dovrai sviluppare anche questo.

Pulisci direttamente Crea alcune classi nel tuo codice di prova per accedere ai dati e pulirli.

Con uno di questi è necessario ripulire prima e dopo aver eseguito il test, ovvero nell'impostazione del test e nei metodi di pulizia del test. Il motivo per farlo due volte è che dovresti presumere che il tuo test non sia andato a buon fine e non sia stato corretto correttamente.

Usa Linq per SQL AFAIK se stai usando Linq per SQL, funziona in memoria e racchiude automaticamente l'intero aggiornamento in una transazione. Se semplicemente non si chiama SubmitChanges (); quindi dovresti andare bene, ma non l'ho provato io stesso.

Altri suggerimenti

Ho chiesto a uno sviluppatore di creare uno script che ripristinerà il database. Dopo una serie di test, chiamo solo quello script e inizio da un database pulito.

Mike: la tua domanda non è unica per Watir / WatiN. Si applica a qualsiasi test dell'interfaccia utente, quindi cerca soluzioni simili per Selenium, Windmill e persino test di integrazione senza testa (HtmlUnit, test API, ecc.). Ho risposto a questa domanda un paio di volte personalmente su StackOverflow.

WatiN è per il test dell'interfaccia utente.

Per testare lo scenario che stai cercando, puoi generare l'id utente usando il codice c # che lo renderà univoco (rispetto al modo in cui è memorizzato quando hai creato il test).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top