Domanda

Sto creando un livello di servizio Web REST su un'app Rails che verrà utilizzata da un'applicazione Iphone.Il formato della risposta è XML.

Vorrei creare alcuni test di accettazione che dovrebbero essere esterni allo stack dei binari (e dovrebbero testare tutto, incluso il server http).Gli scenari di test sono piuttosto complessi e implicano il processo di ricerca/pubblicazione/revisione di un ordine.Quale sarebbe la soluzione migliore per raggiungere questo obiettivo?

UN.Script Ruby che utilizza curl/curb per recuperare la richiesta e Hpricot per analizzare la richiesta

B.Selenio

C...

Sarebbe anche bello che questi test potessero essere usati come test di integrazione (quindi eseguiti su ogni commit git).Quale soluzione di integrazione consiglieresti?

UN.Integrità

B.Regolazione automatica della velocità

C.qualcos'altro

È stato utile?

Soluzione

Ho usato tre approcci nel corso degli ultimi anni

Risorsa attiva

Ho scoperto che questo era troppo preoccupato di sembrare un record attivo per essere un'ottima soluzione.In alcuni casi ho dovuto patcharne alcune parti affinché funzionassero come vorrei che si comportasse un client REST.


Resto-cliente

Questo gemma È Molto bene - Ben documentato e funziona come previsto.L'ho combinato con il mio semplice DSL e ha funzionato meglio di un framework di test generico


XML su HTTP

Lo uso per testare le prestazioni.Molto flessibile ma la curva di apprendimento è più alta rispetto a Rest-client.Se segui questo approccio potresti usare il file Rete::HTTP classe principale o il Gemma HTTParty (Non l'ho provato ma sembra fantastico>

Una risorsa davvero valida è questa Net::HTTP cheat-sheet


Per i test ad hoc ho trovato anche il file Componente aggiuntivo Rest Client per Firefox molto utile.

Altri suggerimenti

Usa selenium-rc in modalità Ruby e sarai un campeggiatore felice.Webrat/Cecumber lo fa già per te, quindi puoi semplicemente inserirlo in un secondo progetto ed eseguire i test in questo modo, tutto ciò che dovrai fare è sovrascrivere l'host (quindi invece di localhost utilizzerai il tuo dominio).

Per quanto riguarda CI, temo di non conoscere il migliore.

non puoi assolutamente intendere l'integrità di mks... se è così, la risposta è tutt'altro.CC è un buon strumento CI.veramente buono.

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