单元测试包含ViewData的返回视图?

时间:2018-04-02 11:22:57

标签: c# unit-testing nunit

这是我的方法..

public ActionResult PowerTrainConditionReview()
    {
        ViewData["id"] = RouteData.Values["id"];
        return View();
    }

当方法中包含Viewdata时,如何为返回视图编写单元测试...?

我试过这样的事情

 [Test]
    public void ShouldRenderPowerTrainConditionReview()
    {

        sut.WithCallTo(x => x.PowerTrainConditionReview()).ShouldRenderDefaultView();
    }

System.NullReferenceException : Object reference not set to an instance of an object.

返回视图语句之前抛出此异常

1 个答案:

答案 0 :(得分:0)

嗯,你不应该对视图/动作方法进行单元测试,因为那里没有什么可以测试的。例如,在您发布的代码中,RouteData实际上并不存在,除非您运行应用程序并进入MVC管道。因此,您无法对其进行测试,并且嘲弄它也很困难。而是测试业务层单元。

如果你有动作方法本身的逻辑,那么那就是针对MS或其他人建议的,你应该重构你的代码。