我問this關於如何編寫一個pytest來檢查stdout
輸出的問題並得到了一個解決方案。現在我需要寫一個test case
,檢查的內容寫入文件,按預期 內容被寫入如:編寫pytest函數來檢查輸出到python中的文件?
def writetoafile():
file = open("output.txt",w)
file.write("hello\n")
file.write("world\n")
file.close()
現在pytest功能檢查,如果它寫:
def test_writeToFile():
file = open("ouput.txt",'r')
expected = "hello\nworld\n"
assert expected==file.read()
雖然這似乎工作,我不認爲這是理想的,尤其是硬編碼。如何寫這些通常寫入文件的這種test functions
?
爲什麼這不理想?你寫了你想要檢查的內容是否按預期寫入,所以查看文件並檢查似乎是最好的選擇。你總是可以用一系列隨機字符做一個變量,並檢查它是否寫入成功;你可以檢查「expected in file.read()」來查看數據是否被追加(但是你使用了'w'標誌,這是一個糟糕的測試)。等等。你想測試什麼,如果不是這樣?在大多數測試中,也許知道你想要的是真正的問題。 –