小编Nat*_*Sdk的帖子

NSubstitute使用out参数模拟void方法

我是NSubstitute的新手,我试图void用2个out参数模拟一个方法,我很确定我做错了.

我有一个CustomerDataAccess类具有以下签名的方法:

void GetCustomerWithAddresses(int customerId, 
                              out List<Customer> customers, 
                              out List<Address> addresses);
Run Code Online (Sandbox Code Playgroud)

CustomerRepository调用它的GetCustomer方法,然后调用CustomerDataAccess.GetCustomerWithAddressesDAL方法.然后,DAL方法out为客户输出一个参数,为地址输出一个参数.然后,存储库方法用于AutoMapper将DAL方法中的两个对象映射到存储库随后返回的业务域.

这是我到目前为止的代码,它不起作用.我的研究没有帮助我确定我需要做些什么来解决这个问题.如何设置out参数的值?

// Arange
ICustomerDataAccess customerDataAccess = Substitute.For<ICustomerDataAccess>();
IList<Customer> customers;
IList<Address> addresses;

customerDataAccess.When(x => x.GetCustomerWithAddresses(
    1, out customers, out addresses))
    .Do(x =>
    {
        customers = new List<Customer>() { new Customer() { CustomerId = 1, CustomerName = "John Doe" } };
        addresses = new List<Address>() { new Address() { AddressId = 1, …
Run Code Online (Sandbox Code Playgroud)

c# testing unit-testing mocking nsubstitute

10
推荐指数
1
解决办法
7739
查看次数

标签 统计

c# ×1

mocking ×1

nsubstitute ×1

testing ×1

unit-testing ×1