我正在編寫與數據庫交互的測試,並且想要進行某種特定於每個測試的設置和拆卸。這是我目前有:每個測試函數後運行不同的代碼
"my test" in {
// Use anorm to populate the database
Db.withConnection {
SQL"INSERT INTO ...".execute()
// Do some tests
foo must equal 1
bar must equal 2
// Remove the test data
SQL"DELETE FROM ...".execute()
}
}
這種方法的問題是,如果一個測試失敗,則停止執行和測試數據永遠不會被從數據庫中刪除。
我的應用程序是一個REST API,所以我只是想通過把數據庫中的一些數據,然後打端點(我知道會發生什麼,因爲我只是把數據)來測試終端,然後刪除這些數據,這樣我就不會污染任何其他測試。有沒有更好的辦法? – Tyler
好吧,如果測試集中在一個資源上,我不明白爲什麼每個測試「方法」都需要不同的設置。我的意思是,如果你有'PersonApiSpec','CountryApiSpec','LessonApiSpec'等,我認爲這會給你足夠的隔離。當然,這個意見是基於我可以從這個問題中推斷出來的。 :-) – marcospereira
無論如何,我的答案中的四周特徵可以用於這兩種情況。 – marcospereira