我是單元測試ASP MVC應用程序。現在我正在測試一個存儲庫。我有數據庫中的表,具有屬性ID(主鍵int),ItemName(varchar),IsValid(位 - 真/假)。 在存儲庫中,存在像使用單元測試(測試使用屬性isValid)進行測試的創建,更新,刪除等方法。還有一個方法getAllItems單元測試存儲庫。爲什麼DBContext返回錯誤的值?
public IEnumerable<Item> GetAllItems()
{
return _db.ItemSet.Where(w => w.isValid);
}
運行創建,更新單元測試後,刪除還有一個單元測試方法,測試方法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緩存查詢和數據以獲得更高的測試速度。有沒有posibitilies會禁用這種chaching。或者還有其他問題嗎?
您是否在所有測試之間共享'_ws'對象? – DavidG
是的,我做了一個dbContext。 – Fox