2016-08-30 19 views
0

我正在編寫具有數據庫依賴性的單元測試(因此技術上他們是功能測試)。通常這些測試不僅依賴於數據庫的實時性和功能性,還可以依賴於某些數據的可用性。除了通過或失敗之外,Python單元測試還有其他結果嗎?

例如,在一次測試中,我可能會查詢數據庫以檢索將用於測試更新或刪除功能的示例數據。如果數據尚不存在,那麼在這種情況下這不完全是失敗。我只關心更新或刪除的通過/失敗狀態,在這種情況下,我們甚至沒有足夠的時間去測試它。所以我不想給出假陽性或假陰性。

有沒有一種優雅的方式讓單元測試返回第三種可能的結果?如警告?

+1

Pytest具有跳躍和xfail http://doc.pytest.org/en/latest/skipping。 html – allcaps

+1

雖然這是一個失敗 - 您的測試無法以您的測試需要的方式設置系統。如果說「數據不存在,所以這個測試失敗就沒問題」是說你並不在乎你測試的功能是否工作。在取回數據之前,讓您的測試可靠地插入數據,這將使您更好地瞭解系統的狀態。 –

+0

如果他們是單元測試,你應該考慮嘲笑SQL層,這樣你的測試只測試一段特定的代碼(沒有像這樣的依賴)。具有這些依賴關係會減慢測試執行時間。 – Mark

回答

0

總的來說我認爲Paul Becotte的建議是最適合大多數情況下:

這是一個失敗的though-你的測試未能建立系統 ,需要測試的方式。說「數據不存在,所以它 是可行的,這個測試失敗」是說你並不在乎 關於你正在測試的功能是否工作。讓您的測試 在檢索之前立即可靠地插入數據,這將使您更好地洞察系統的狀態。

但是,在我的情況下,我正在編寫一個功能測試,它依賴於從多個進程生成和操作的數據。在測試開始時快速生成它並不實際(至少現在)。

我終於找到了工作,因爲我需要它來使用skipTest這裏提到:

Skip unittest if some-condition in SetUpClass fails

相關問題