В настоящее время я пишу модульные тесты для репозитория, упаковывая методы linq2db.
Я пытаюсь смоделировать простой метод выбора, но, конечно, вы не можете смоделировать методы расширения, такие как GetTable () или Insert (item).
То, что я сейчас пытаюсь сделать, это настроить простой тест с использованием Moq, AutoFixture и Autofac
using (var mock = AutoMock.GetLoose())
{
var fixture = new Fixture();
var customers = fixture
.Build<List<Customer>>()
.Create();
mock.Mock<IDataContext>()
.Setup(item => item.GetTable<Customer>().ToList())
.Returns(customers);
var cls = mock.Create<CustomerRepository>();
var actual = cls.GetAllAsync().Result;
Assert.IsTrue(actual != null);
Assert.Equals(customers.Count, actual.Count());
}
Тест, конечно, не проходит при установке, так как GetTable<Customer>()
является методом расширения IDataContext
.
Как правильно протестировать упаковку репозитория linq2db?