Python Doctest

Python Doctest
“Sappiamo che il docstring di Python fornisce maggiori dettagli sulle sue funzioni e classi. I pacchetti di Doctest scrivono il programma che inizia con >>> e contrasta i risultati con ciò che era previsto. Eseguindo le illustrazioni incluse nelle specifiche e confermando di fornire i risultati desiderati, lo strumento DOCTEST consente di valutare lo script. Estrae campioni dal testo di riferimento, li esegue e quindi contrasta i risultati con il valore target.

Il fatto che non ci sia stata API da memorizzare nella versione più elementare rende il dottost più semplice da utilizzare da molti programmatori. La creazione di test per i dottori potrebbe essere più difficile del semplice consumo unittest anche se le istanze diventano più complicate poiché non esiste una gestione delle risorse."

Esempio 01

Iniziamo ora con il primo esempio di questo articolo. Abbiamo iniziato questo esempio con l'importazione del modulo "Doctest" alla prima riga. Dopo questo, abbiamo definito una nuova funzione, "test" con il parametro "Args" punta che punta verso l'uso dei valori interi per il metodo di test. All'interno di questo metodo, abbiamo utilizzato le citazioni triple per passare i valori interi al metodo "test" per verificare se la somma di tutti i valori passati è uguale a un certo valore definito nella riga successiva.

Quindi, abbiamo passato i 5 valori al metodo di test e ci aspettavamo il risultato di 49 come somma. Quindi, abbiamo provato un altro test passando tre numeri alla funzione di test aspettando il risultato di 22, e nell'ultimo, ancora una volta, sono stati passati 5 valori per aspettarsi il risultato di 15. La funzione Sum () ha portato i valori passati alla funzione di test come argomento e restituito la somma di tutti. La funzione TestMod () del modulo Doctest di Python è stata utilizzata qui per testimoniare che il valore calcolato è uguale al valore atteso. In caso contrario, lancerà un errore sulla nostra console.

Salviamo ed eseguiamo questo programma all'interno dello strumento Spyder 3 per vedere cosa succede all'interno della parte di prova. Il codice dettagliato di questo esempio è visualizzato nello screenshot.

Dopo l'esecuzione di questo codice Python, abbiamo visualizzato l'output di seguito. Mostra che il programma ha cercato di testare i 5 valori e aspettandosi 49 come una somma. Il valore restituito "OK" mostra che il test è stato superato e convalidato; La somma restituita è 49. Il test successivo è stato applicato a tre valori in attesa di 22 come somma, mentre il test non è riuscito perché la somma che abbiamo avuto era 21.

Dopo l'uso della funzione di test del Doctest sui successivi 5 valori, abbiamo superato il test come previsto e il valore della somma restituito è 15. Alla fine, siamo stati segnalati con il risultato che un totale di 2 test sono stati trasmessi su 3. Nello screenshot, il risultato di questo esempio è mostrato.

Esempio 02

Abbiamo usato un altro esempio per utilizzare il modulo Doctest nel nostro codice Python per testimoniare una condizione matematica diversa. Quindi, abbiamo iniziato questo esempio con l'importazione della funzione TestMod del pacchetto Doctest in Python. La funzione "fatto" è stata definita prendendo un valore variabile "v" come argomento. Le triple citazioni seguite dal segno >>> stanno usando la funzione fact () per scoprire il fattoriale di un "4" e "2" su due linee diverse. Mentre il risultato atteso sarebbe 24 e 3 in questo caso.

La condizione "if" è stata utilizzata per verificare se il valore della variabile "V" passata alla funzione Fact è uguale o inferiore a 1 e restituisce 1; Altrimenti, il fattoriale di un valore "V" verrebbe calcolato dalle formule "V*Fact (V-1)".

La funzione principale () è qui per utilizzare la funzione Tesmod () utilizzando la funzione "Fatto" al suo interno. Sarebbe testato che il fattoriale dei valori "4" e "2" passati alle funzioni di fatto () sarebbe 24 e 3 o no. Questo programma è stato salvato ed è pronto per l'uso ora. Il codice dettagliato di questo esempio è visualizzato nello screenshot.

Dopo averlo eseguito, dobbiamo sapere che il fattoriale di 4 restituito dalla funzione è 24, che è uguale al risultato previsto, i.e. Il test è stato superato in questo caso, io.e. 24. Per il secondo valore, il test non è riuscito in quanto il fattoriale previsto di 2 è 3 mentre il risultato effettivo deve essere 2. Quindi, il rapporto ha mostrato che 1 test è stato superato mentre 1 non è riuscito. Nello screenshot, il risultato di questo esempio è mostrato.

Esempio 03

All'interno di questo esempio, abbiamo importato la funzione TestMod dal suo modulo Doctest e utilizzando la funzione check () per verificare che il risultato di moltiplicazione di due valori sia come previsto o no. Nella prima chiamata di funzione, abbiamo superato 5 e 3 e previsto 15 come risultato di moltiplicazione, mentre nella seconda chiamata di funzione, abbiamo superato il carattere M e Integer 3 mentre ci aspettavamo "MMM" come risultato di moltiplicazione.

Il risultato della moltiplicazione "M*R" verrebbe restituito alla funzione di chiamata principale (). La funzione principale () sta solo chiamando la funzione testmod per eseguire 2 test. Questo programma è ora completato e pronto per essere eseguito. Il codice dettagliato di questo esempio è visualizzato nello screenshot.

Durante l'esecuzione, abbiamo gli stessi valori per entrambi i risultati di moltiplicazione del risultato previsto, i.e. 15 e "mmm". In questo caso, nessun caso di test è stato fallito, io.e. Entrambi i test vengono superati.

Conclusione

Questo è tutto e tutto sull'uso del pacchetto dottore di Python nei nostri codici per testare i programmi. Per questo, abbiamo provato tre diversi esempi per confrontare il valore risultante con il valore atteso delle funzioni prendendo alcuni argomenti. Tutti e tre gli esempi sono semplici e facili da fare sullo strumento Spyder 3 e puoi facilmente imparare il dottore praticandoli.