2016-03-06 81 views
0

我有一個簡單的事務管理器實現,我想知道如何最好地處理我的端到端集成測試。交易經理的測試

在我的測試中,我調用了一個在我的測試中啓動事務並執行一些工作的動作。作爲我的測試的一部分,我想做一些關於數據庫工作的斷言,但我不想提交事務 - 我想將其恢復。

我能想到的一種方法是重寫事務管理器,並使commit方法不做任何事情,並在測試結束時調用回滾。

這種方法關注我的一件事是涉及的緩存,我如何確保每個操作導致數據庫調用而不是使用任何緩存?

我認爲這一定是以前已經回答的問題 - 沒有重新發明輪子的意義,所以我在做正確的事情嗎?

如果它很重要,我使用Hibernate和不使用Spring。

回答

0

使測試類成爲事務性並在後測方法中執行回滾。 你可以在抽象超類中做到這一點。所以你不必在每個集成測試課上都這麼做。

您必須決定在測試env中禁用緩存還是使用緩存是一個好主意。使用緩存可能有副作用,但您更接近現實。另一方面,您可能想要測試dao層而不是緩存。