Ho chiesto alla domanda this su come scrivere un pytest per verificare l'output in stdout
e ottenere una soluzione. Ora ho bisogno di scrivere un test case
, per verificare se i contenuti sono scritte nel file e che i contenuti sono scritti come previsto esempio:scrivendo una funzione pytest per controllare l'output in un file in python?
def writetoafile():
file = open("output.txt",w)
file.write("hello\n")
file.write("world\n")
file.close()
ora una funzione pytest per verificare se scritto:
def test_writeToFile():
file = open("ouput.txt",'r')
expected = "hello\nworld\n"
assert expected==file.read()
mentre questo sembra funzionare, non penso che questo sia l'ideale, specialmente con hard-coding. in che modo questo tipo di test functions
di scrittura su un file viene solitamente scritto?
Perché questo non è l'ideale? Hai scritto che vuoi controllare che i contenuti siano scritti come previsto, quindi esaminare il file e il controllo sembra l'opzione migliore. Puoi sempre creare una variabile con una serie di caratteri casuali e controllare se è stata scritta con successo; puoi controllare "previsto in file.read()" per vedere se i dati sono stati aggiunti (ma hai usato il flag "w", quindi qui è un test negativo); ecc. Cosa vuoi testare se non questo? Forse sapere quello che vuoi è la vera domanda qui, come nella maggior parte dei test. –