我正在使用仅代码持久性的MVC2,实体框架和CTP4。我已经在MSUnit中为我的域对象创建了一些单元测试,包括一些用于查看持久性如何在这个范例中工作的单元测试。我正在使用Sql Server CE 4.0进行这些测试。这样可以正常工作,除了一个问题......数据似乎在同一个类中的测试之间保持不变。
我以前有使用Java,Hibernate Annotations和HSQLDB的经验,在这种情况下,DB会在每次测试执行时创建并拆除。但是,在SqlCompact中,我有几个测试使用相同的测试数据夹具,如果我同时运行它们,最终会出现约束违规。
我可以通过一些黑客来解决这个问题,在[TestCleanup]
内明确删除表/删除数据但是在这种情况下使用SQL Compact时,确保每次测试都使用新数据库的正确方法是什么?我确定答案很简单,但我似乎无法在任何地方找到答案。感谢。
[TestCleanup]
public void teardown()
{
mgr.Database.DeleteIfExists();
mgr.Database.Create();
}
答案 0 :(得分:0)
我认为更好的方法是将您在拆解时的代码添加到[TestInitialize]中,在每次测试执行之前调用它。将其与[ClassInitialize]进行比较,后者将为整个灯具调用一次。
我对NUnit更熟悉,并发现此表有助于将NUnit属性映射到MSUnit http://blogs.msdn.com/b/nnaderi/archive/2007/02/01/mstest-vs-nunit-frameworks.aspx