2013-10-22 10 views
7

Sono in fase di integrazione dei test di cetriolo per un'applicazione esistente. L'app interagisce pesantemente con un back-end. Il caso più semplice è la registrazione di un utente.Come simulare l'interazione di backend durante l'esecuzione dei test di calabash

Per rendere ripetibili i test, non posso andare contro il backend (reale) (per diversi motivi, uno non è in grado di registrare due utenti con la stessa e-mail).

Mi piacerebbe sapere quali opzioni sono in grado di prendere in giro il comportamento del backend e fornire risposte di derisione. Per il test delle unità, so Nocilla e diversi altri framework. Integrarli ovviamente non funziona per i test della zucca.

Un'alternativa sarebbe avere un server reale in esecuzione che controllerei dai test della zucca per controllare il networking. Ma sembra un po 'eccessivo. Un'altra opzione sarebbe quella di avere oggetti finti nel target di zucca che potrei controllare tramite il meccanismo calabash backdoor.

Dubito che non siano le uniche opzioni. Quindi la mia domanda è: c'è un modo più elegante per farlo?

+0

È possibile provare e-mail utente generate automaticamente con un prefisso noto per registrare nuovi utenti. E ogni volta che hai bisogno puoi cercare con quel prefisso ed eliminare tutto dal server in una volta. –

+0

Non si tratta solo delle e-mail, ma di ogni interazione di backend che dipende da un certo stato. Ma in questo momento siamo andati con un piccolo server Sinatra le cui risposte possono essere configurate inviando richieste PUT dalle definizioni del passo calabash. – mAu

risposta

3

Poiché non ho ricevuto altri feedback fino ad oggi, risponderò alla mia domanda.

Abbiamo optato per il modo di creare un finto molto semplice per il nostro back-end. Abbiamo usato Sinatra, ma un node.js o una tecnica simile avrebbe portato allo stesso risultato. La simulazione può essere controllata tramite una semplice API REST.

Nelle definizioni di passo configuriamo il nostro finto backend in modo appropriato per lo scenario in esecuzione. È un po 'sovraccarico, perché la finta deve evolversi con il vero back-end, ma fino ad oggi sembra una soluzione robusta.

+3

Potresti andare un po 'più avanti nel modo in cui l'hai fatto? Hai modificato l'URL di base che la tua app puntava verso il tuo target di test? Hai usato qualche tipo di proxy per reindirizzare il traffico? Sto assolutamente strappando i capelli cercando di capire questa roba. – s73v3r