scrittura di test funzionali / di integrazione per python

1

Sono nuovo per i test di Python e funzionali / di integrazione nel suo complesso. So come scrivere i test unitari, ma in questo caso non ho bisogno dell'isolamento per funzioni specifiche, ma ho bisogno che il mio script python sia eseguito con alcuni parametri della riga di comando e poi testato per l'output (ad esempio se il programma ha successo, un viene effettuata una chiamata REST specifica). Quindi ho bisogno di un modo per scrivere un test automatizzato che tratti l'intero script come una scatola nera, chiamandolo con alcuni argomenti e osservando quale tipo di output esce dall'altra parte. Ho sentito che è possibile farlo con la pyunit standard, ma non sono molto chiaro su come affrontare l'esecuzione di interi script invece delle sole funzioni in pyunit. Ci sono modi per ottenere ciò che ho descritto? Se sì, potrei avere un piccolo esempio? Forse c'è uno strumento solo per questo genere di cose?

    
posta Reinis 19.09.2014 - 06:48
fonte

1 risposta

1

Se il tuo script "intero" è scritto come un insieme di funzioni che includono la funzione "principale" e termina come

if __name__ == "__main__":
    main()

allora tutto ciò di cui hai bisogno è in realtà chiamare quella principale. Se disponi di parametri della riga di comando analizzati, puoi fornire anche questi.

Come per le chiamate REST, usi dei mock. O prendi in giro la chiamata vera e propria (se è sufficiente controllare che sia corretta) o configura un server REST finto e indirizza la tua app verso di essa.

Ad esempio, la mia app ha un'autenticazione OpenID. Così ho creato il mio semplice server OpenID e punto la mia applicazione per usarlo come provider. È piuttosto lento, quindi lo uso solo quando eseguo scenari che implicano l'autenticazione. In tutti gli altri casi, ho solo corretto il metodo di autenticazione (sto usando il tornado e sto correggendo get_current_user per restituire un ID utente predefinito).

    
risposta data 19.09.2014 - 07:54
fonte

Leggi altre domande sui tag