Я новичок в NSubstitute, я пытаюсь высмеять метод void
с параметрами 2 out
, и я уверен, что делаю это неправильно.NSubstitute mock void method без параметров
У меня есть CustomerDataAccess
класса, который имеет метод со следующей подписью:
void GetCustomerWithAddresses(int customerId,
out List<Customer> customers,
out List<Address> addresses);
CustomerRepository
называет его GetCustomer
метода, который затем вызывает метод CustomerDataAccess.GetCustomerWithAddresses
DAL. Затем метод 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, AddressLine1 = "123 Main St", City = "Atlanta" } };
});
CustomerRepository sut = new CustomerRepository(customerDataAccess);
// Act
Customer customer = sut.GetCustomer(1);
// Assert
Assert.IsNotNull(customer);
Да, что работал я отсутствовал доступ конкретных параметров в массиве. – NathanFisherSdk