0
我使用NSubstitute使用實體框架6.測試實體實體框架6單元測試枚舉後消失
我用這篇文章作爲基地,爲我的設置來測試應用程序:https://msdn.microsoft.com/en-us/library/dn314429.aspx
每當我代碼枚舉實體集兩次,所有實體消失。這可以通過連續運行兩次.ToList()來演示。
任何想法如何解決這個問題?
我創建了一個簡單的測試來重建這種行爲:
[TestMethod]
public void DisappearingEntities()
{
var db = Substitute.For<Entities>();
var entityList = new[]
{
new Role(1, "Role1"),
new Role(2, "Role2"),
new Role(3, "Role3"),
new Role(4, "Role4")
}.ToList();
var queryableEntityList = entityList.AsQueryable();
var set = Substitute.For<DbSet<Role>, IQueryable<Role>>();
db.Roles.Returns(set);
set.AsQueryable().Provider.Returns(queryableEntityList.Provider);
set.AsQueryable().Expression.Returns(queryableEntityList.Expression);
set.AsQueryable().ElementType.Returns(queryableEntityList.ElementType);
set.AsQueryable().GetEnumerator().Returns(queryableEntityList.GetEnumerator());
db.Set<Role>().Returns(db.Roles);
set.AddRange(entityList);
Assert.IsTrue(db.Roles.ToList().Count() == 4);
//assert fails
Assert.IsTrue(db.Roles.ToList().Count() == 4);
}
太棒了!我不知道我該如何錯過。謝謝! –
很高興我能幫忙:) –