Коллекция была изменена, операция перечисления не может быть выполнена в moq с EF
Во время модульного тестирования я не могу получить коллекцию обратно из dbset после добавления новой сущности в dbset, она выдает исключение "коллекция была изменена".
Вот моя настройка кода
[TestMethod] [TestCategory("Skill Category")] public void Create_Skill_Category() { var category = new SkillCategoryModel() { CategoryId = 3, CategoryName = "Category 3" }; var result = skillManager.SaveSkillCategory(category); Assert.IsNotNull(result, "Category can't be null"); Assert.AreEqual(category.CategoryId, result.CategoryId, "Category id must be equal"); var categoryList = skillManager.GetCategories(); // here exception thrown Assert.IsTrue(categoryList.Count == 3, "Categories List must be contain three category"); } private ISkill skillManager; [TestInitialize] public void Init() { var category = new SkillCategory { CategoryId = 1, CategoryName = "Category 1" }; var categories = new List<skillcategory> { category, new SkillCategory { CategoryId = 2, CategoryName = "Category 2" } }; var categoryMockSet = Utility.GenerateMockEntity(categories); categoryMockSet.Setup(x => x.Add(It.IsAny<skillcategory>())).Callback<skillcategory>(x => categories.Add(x)).Returns<skillcategory>(x => x); var mock = new Mock<whoentities>(); mock.Setup(q => q.SkillCategories).Returns(categoryMockSet.Object); mock.CallBase = true; skillManager = new WhoGroup.DML.Managers.SkillManager(mock.Object); }
?
Что я уже пробовал:
здесь я не могу понять, что я делаю не так в этом случае. для справки я использую эту ссылку:
Entity Framework 6 и Moq4: возможно ли, чтобы издевательский DbSet сохранял добавленные данные в течение всего срока его действия?