私はMVCと単体テストが初めてです。製品コントローラーのテストに Visual Studio 単体テスト フレームワークを使用しています。コントローラーは実際の Web サイトで動作しますが、単体テストでは常に null を返します。ViewResult や Model の名前などのキーワードを切り替えましたが、コントローラーが常に null を返すため、すべてが機能しません。次に、ブレークポイントを設定して、テスト コードのデバッグを開始します。イミディエイト ウィンドウでテストすると、値が表示されます。
ここで何が欠けていますか?
この URL にスクリーンショットがあります: http://i.imgur.com/XBmoh.png スクリーンショットでは、コントローラーからモデルが正常に渡され、P4 P5 が結果に格納されているイミディエイト ウィンドウを確認できます。UnitTestでは機能しません。
リストのコードは非常にシンプルで、ウェブサイトでうまく動作します。ここにコードがあります
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);
}