Ich bin völlig neu zu Moq und bis jetzt nur die Beispiele in Pro asp.net Framework folgen. In dem Buch wird ein Teil des Crud in den Controller gelegt, etwa um den Kunden per ID zu bekommen - möglicherweise aus Gründen der Kürze. Ich habe mich entschieden, diese Art von Funktionalität in das Repository zu legen und es einfach im Controller wie "customerRepository.GetCustomerByID (id)" aufzurufen. Was ist der beste Weg, um etwas wie das zu testen? Ich habe den folgenden Komponententest erstellt, der aus irgendeinem Grund einen Null-Kunden zurückgibt.Einheit Testing Repository mit Moq
List<Customer> customer = new List<Customer>();
customer.Add(new Customer { CustomerId = 1, FirstName = "test", LastName = "wods", Sex = true });
mockRepos = new Moq.Mock<ICustomerRepository>();
mockRepos.Setup(x => x.Customers).Returns(customer.AsQueryable());
CustomersController controller = new CustomersController(mockRepos.Object);
//Act
ViewResult results = controller.Edit(1);
var custRendered = (Customer)results.ViewData.Model;
Assert.AreEqual(2, custRendered.CustomerId);
Assert.AreEqual("test", custRendered.FirstName);
Und der Controller
public ViewResult Edit(int id)
{
Customer customer = customerRepository.GetCustomerByID(id);
return View(customer); //this just returns null??
}
Ich stelle mir vor ich bin sehr albern, aber jede Hilfe uber würde geschätzt.
Perfect danke. – hoakey