MVC 3 Controller上的单元测试为结果返回null,但我可以在立即窗口中看到它们

Sno*_*108 5 unit-testing asp.net-mvc-3

我是MVC和单元测试的新手.我正在使用Visual Studio单元测试框架来测试产品控制器.控制器在实际网站上工作,但它总是在单元测试中返回null.我切换了关键字,如ViewResult或Model的名称,但所有这些都不起作用,因为控制器总是返回null.然后我提出了断点并开始调试测试代码.当我在立即窗口中测试它有价值.

我在这里错过了什么?

我在此URL上有一个屏幕截图:http://i.imgur.com/XBmoh.png 在屏幕截图中,您可以看到模型从控制器成功传递的立即窗口,P4 P5存储在结果中.它在UnitTest中不起作用.

List代码非常简单,在网站上运行正常.这是代码

    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);
    }
Run Code Online (Sandbox Code Playgroud)

Arv*_*and 6

如果出现此问题,则表示您未在项目中使用相同版本的System.Web.Mvc.您必须在主项目和单元测试项目中引用相同版本的System.Web.Mvc.