我正在运行一些需要连接到数据库的单元测试。当我的测试项目被初始化时,会创建数据库的快照,当测试完成时,数据库会恢复到快照。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