【发布时间】:2014-11-15 13:30:16
【问题描述】:
我正在对 ASP MVC 应用程序进行单元测试。现在我正在测试一个存储库。我在数据库中有属性 ID(主键 int)、ItemName(varchar)、IsValid(位-真/假)的表。 在存储库中,有一些方法,如 Create、Update、Delete,我正在使用单元测试进行测试(测试使用属性 isValid)。还有方法getAllItems
public IEnumerable<Item> GetAllItems()
{
return _db.ItemSet.Where(w => w.isValid);
}
在运行 Create、Update、Delete 的单元测试之后,还有一种单元测试方法可以测试 getAllWorkitem 方法。
[TestMethod]
public void GetAllItems_Test()
{
//Arrange
var allWorkitems = _ws.GetAllItems();
//Act
//Assert
foreach (Item currentItem in allItems)
{
Assert.AreEqual(true, currentItem.Valid);
}
}
如果我单独运行所有测试,它可以正常工作。如果我一起运行所有测试,就会出现问题。 在 var allWorkitems 中有 isValid = false 和 isValid = true 的项目。
我认为 dbContext 正在缓存查询和数据以提高测试速度。是否有任何可能会禁用这种chaching。还是有其他问题?
【问题讨论】:
-
您是否在所有测试之间共享
_ws对象? -
是的,我有一个 dbContext。
标签: c# asp.net-mvc unit-testing caching dbcontext