2012-02-27 63 views
0

在googletest框架中是否有一種機制允許測試在測試失敗後清除數據(如果測試失敗,代碼拋出異常並停止進一步執行(清除數據) 。從數據庫中刪除數據的C++例程

謝謝!

+0

你正在使用什麼測試跑步者? – 2012-02-27 20:10:40

+0

我正在使用googletest – user1065969 2012-02-27 20:27:19

回答

0

由於SQLite的從一個單一的文件進行操作,您可以使用SetUp()在測試夾具複製預配置的數據庫文件到您的程序期望數據庫是覆蓋「運行時」數據庫文件的在每次測試前配置一個

通過這種方式,每個測試都可以獲得全新的數據庫,並且可以在不運行任何數據庫創建腳本的情況下,使用所選表格和可能的基礎數據進行初始化。這應該使測試運行迅速。

+0

謝謝!我讀過teardown()將在測試用例完成執行後調用。即使測試用例失敗,它會被調用嗎?還是會繼續進行下一個測試? – user1065969 2012-02-27 21:24:03

+0

@ user1065969只要測試用例不會使測試運行器崩潰,應該調用TearDown。問題是,如果你在測試中導致內存損壞,如果你覆蓋了「錯誤的」內存,TearDown可能也會失敗: -/ – 2012-02-27 21:43:50

+0

非常感謝你Joa ..這真的很有幫助! – user1065969 2012-02-28 15:20:58

2

上的臨時運行測試,in-memory database

+0

謝謝larsmans。但我目前正在爲sqlite數據庫編寫單元測試。 – user1065969 2012-02-27 20:14:40

+0

@ user1065969:你可以在內存拷貝上運行測試嗎? – 2012-02-27 20:18:02

+0

是的,我可以 – user1065969 2012-02-27 20:28:51