linq2db的模拟扩展方法

时间:2019-04-04 10:28:47

标签: c# .net unit-testing moq linq2db

当前,我正在编写存储库的单元测试,并包装linq2db方法。 我正在尝试模拟一个简单的select方法,但是您当然不能模拟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的存储库?

0 个答案:

没有答案