我正在運行一些需要連接到數據庫的單元測試。當我的測試項目被初始化時,會創建數據庫的快照,當測試完成時,數據庫會恢復到快照。AssemblyCleanup()測試失敗/異常
下面是執行:
[TestClass]
public static class AssemblyInitializer
{
[AssemblyInitialize()]
public static void AssemblyInit(TestContext context)
{
var dbss = new DatabaseSnapshot(...);
dbss.CreateSnapshot();
}
[AssemblyCleanup()]
public static void AssemblyCleanup()
{
var dbss = new DatabaseSnapshot(...);
dbss.RevertDatabase();
}
}
現在這所有的作品,但是當我有一個失敗的測試或一些例外出現我的問題。 AssemblyCleanup當然不會被調用,那麼我該如何解決這個問題呢?無論發生什麼情況,快照都必須恢復。這可能嗎?
在單元測試中,您可以添加將在測試完成時執行的代碼。也許看那裏? :) – 2010-05-09 14:39:57
@Oskar我可以做什麼「大會集會」嗎?否則,我必須爲所有測試做到這一點。這是可能的,但我希望更好的解決方案。 – 2010-05-09 15:17:25
我是單元測試新手,但我認爲在單元測試中使用db並不是最佳做法。 http://en.wikipedia.org/wiki/Mock_object – anilca 2010-05-09 15:22:34