当前,我正在编写存储库的单元测试,并包装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的存储库?