Насмешливые методы расширения linq2db - PullRequest
0 голосов
/ 04 апреля 2019

В настоящее время я пишу модульные тесты для репозитория, упаковывая методы 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?

...