如何模拟嵌套界面?
how to mock nested interface?
我正在尝试模拟 IUnitOfWork 接口
Mock<IUnitOfWork> mock = new Mock<IUnitOfWork>();
IUnitOfWork 接口包含其他接口。
所以我想在 IUintOfWork
的 Customer 接口中模拟一个函数
mock.Setup(s => s.Customer.GetActiveCustomerByIdCard("lala"))
.Returns(new Customer());
我将 mock.Object 传递给 class 进行测试
var manager = new CustomerManager(mock.Object);
var res = manager.AddNewCustomer(new Customer());
我的问题是当模拟函数 return 为 null
var customer = _unitOfWork.Customer.GetActiveCustomerByIdCard(idCard);
当我调试测试时,我在 CustomerManager class 中看到了模拟,但是函数 return null
很可能设置使用的值与调用模拟时使用的值不同。
使用It.IsAny<string>()
忽略参数值
mock
.Setup(s => s.Customer.GetActiveCustomerByIdCard(It.IsAny<string>()))
.Returns(new Customer());
我正在尝试模拟 IUnitOfWork 接口
Mock<IUnitOfWork> mock = new Mock<IUnitOfWork>();
IUnitOfWork 接口包含其他接口。 所以我想在 IUintOfWork
的 Customer 接口中模拟一个函数mock.Setup(s => s.Customer.GetActiveCustomerByIdCard("lala"))
.Returns(new Customer());
我将 mock.Object 传递给 class 进行测试
var manager = new CustomerManager(mock.Object);
var res = manager.AddNewCustomer(new Customer());
我的问题是当模拟函数 return 为 null
var customer = _unitOfWork.Customer.GetActiveCustomerByIdCard(idCard);
当我调试测试时,我在 CustomerManager class 中看到了模拟,但是函数 return null
很可能设置使用的值与调用模拟时使用的值不同。
使用It.IsAny<string>()
忽略参数值
mock
.Setup(s => s.Customer.GetActiveCustomerByIdCard(It.IsAny<string>()))
.Returns(new Customer());