Ich bin neu in MVC und Unit Test. Ich verwende Visual Studio Unit Test Framework, um einen Produkt-Controller zu testen. Der Controller arbeitet auf der aktuellen Website, gibt aber im Unit-Test immer null zurück. Ich habe Schlüsselwort wie ViewResult oder Name von Model umschaltend, aber alle von ihnen funktionieren nicht, weil Kontrolleur immer Null zurückgibt. Dann setze ich eine Bruchstelle und beginne den Testcode zu debuggen. Wenn ich es im Direktfenster teste, hat es einen Wert.Unit Test auf MVC 3 Controller gibt Null für Ergebnisse zurück, aber ich kann sie im Direktfenster sehen
Was fehlt mir hier?
Ich habe einen Screenshot auf dieser URL: http://i.imgur.com/XBmoh.png Im Screenshot können Sie das Direktfenster sehen, das das Modell vom Controller erfolgreich übergeben wurde, P4 P5 wird im Ergebnis gespeichert. Es funktioniert einfach nicht in UnitTest.
Der List-Code ist recht einfach, es funktioniert gut auf der Website. Hier ist der Code
public int PageSize = 4;
private IProductRepository repository;
public ProductController(IProductRepository productRepository)
{
repository = productRepository;
}
public ViewResult List(int page=1)
{
ProductsListViewModel viewModel = new ProductsListViewModel
{
Products = repository.Products
.OrderBy(p => p.ProductID)
.Skip((page - 1) * PageSize)
.Take(PageSize).AsEnumerable(),
PagingInfo = new PagingInfo
{
CurrentPage = page,
ItemsPerPage = PageSize,
TotalItems = repository.Products.Count()
}
};
return View(viewModel);
}
Ich denke, es würde helfen, Ihren 'ProductController.List' Code zu veröffentlichen. – Charlino