Ich bin neu bei NSubstitute, ich versuche, eine void
Methode mit 2 out
Parameter zu verspotten und ich bin mir ziemlich sicher, dass ich es falsch mache.NSubstitute Mock eine void-Methode mit out-Parameter
Ich habe eine CustomerDataAccess
Klasse, das ein Verfahren mit der folgenden Signatur hat:
void GetCustomerWithAddresses(int customerId,
out List<Customer> customers,
out List<Address> addresses);
Die CustomerRepository
nennt seine GetCustomer
Methode, die dann die Methode CustomerDataAccess.GetCustomerWithAddresses
DAL aufruft. Die DAL-Methode gibt dann zwei out
Parameter für den Kunden und einen für Adressen aus. Die Repository-Methode verwendet dann AutoMapper
, um die beiden Objekte der DAL-Methode einer Geschäftsdomäne zuzuordnen, die das Repository dann zurückgibt.
Hier ist der Code, den ich bisher habe und es funktioniert nicht. Meine Forschung hat mir nicht geholfen, zu identifizieren, was ich tun muss, um dieses Problem zu beheben. Wie stelle ich den Wert meiner out
Parameter ein?
// 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);
Ja funktionierte ich fehlte den Zugriff auf die spezifischen Parameter im Array. – NathanFisherSdk