我正在使用仅代码持久性来使用 MVC2、Entity Framework 和 CTP4。我在 MSUnit 中为我的域对象创建了一些单元测试,包括一些用于查看持久性在此范例中如何工作的单元测试。我正在使用 Sql Server CE 4.0 进行这些测试。这工作正常,除了一个问题......数据似乎在同一类的测试之间保持不变。
我以前有使用 Java、Hibernate Annotations 和 HSQLDB 的经验,在这种情况下,每次测试执行都会创建和拆除数据库。然而,在 SqlCompact 中,我有几个测试使用相同的测试数据夹具,如果我同时运行它们,最终会违反约束。
我可以通过一些技巧来解决这个问题,以在其中显式删除表/删除数据,[TestCleanup]
但是在这种情况下使用 SQL Compact 时,确保我从每个测试的新数据库开始的正确方法是什么?我确信答案很简单,但我似乎无法在任何地方找到它。谢谢。
编辑:目前,我正在这样做,这是可行的——但我不喜欢它。欢迎更好的想法:
[TestCleanup]
public void teardown()
{
mgr.Database.DeleteIfExists();
mgr.Database.Create();
}