Ich habe diese zwei Zeilen auf meinem Code.Wie kann ich ein verspottetes Objekt in einem verspotteten Objekt erstellen?
Customer customer = Repository.Customer.GetById(customerId);
Employee employee = customer.Employees.Single(e => e.IsPrimaryContact);
Jetzt erstelle ich einen Komponententest. Beide Objekte, Kunde und Mitarbeiter, sind geschützt, daher muss ich sie verspotten.
Ich habe das erste erfolgreich verspottet und ein verspottetes Objekt 'Kunde' als Rückgabe für den Kunden By Id erstellt.
Customer customer = new Mock<Customer>().Object;
/* code ... code*/
var mockCustomerRepository = new Mock<ICustomerRepository>();
mockCustomerRepository.Setup(p => p.GetById(It.IsAny<Guid>())).Returns(customer);
Repository.Customer = mockCustomerRepository.Object;
Wie Sie sehen können, die ‚Arbeitnehmer‘ Objekt befindet sich innerhalb des verspottete Objekt ‚Kunde‘, das bedeutet, dass ich auch eine verspottete Objekt in meinem ersten verspottet Objekt liefern (Kunde). Ich erwarte, dass mein Code so ist.
Employee employee = new Mock<Employee>().Object;
employee.IsPrimaryContact = true;
List<Employee> employees = new List<Employee>();
employees.Add(employee);
customer.Employees = employees;
/* code ... code*/
jedoch, obwohl ich auf den Aufbau von meinem Test einen Fehler nicht haben. Der customer.employee ist IMMER NULL.