Перешел недавно с Castle.Windsor на Autofac и возникла проблема с unit-тестами, а именно при создании mock DbContext.
Здесь все работает нормально:
var set = new Mock<IDbSet<Company>>();
set.Setup(c => c.GetEnumerator()).Returns(data.GetEnumerator());
set.Setup(c => c.ElementType).Returns(data.ElementType);
set.Setup(c => c.Expression).Returns(data.Expression);
set.Setup(c => c.Provider).Returns(data.Provider);
var context = new Mock<MyDbContext>();
context.Setup(c => c.Companies).Returns(set.Object);
Но как только я добавляю имитацию метода Remove, в коде выбрасывается NullReferenceException, что вроде как MyDbContext.Companies - null.
context.Setup(c => c.Companies.Remove(It.IsAny<Company>()))
.Returns<Company>(c => _data.Remove(c) ? c : null);
Добавляю это прямо под первым листингом.
Что это? Куда копать и как решить? Это я неправильно использую Moq или что-то ещё? Потому что с Castle.Windsor таких проблем не было.