MVC.NET中控制器的单元测试

时间:2014-07-30 13:37:03

标签: c# asp.net .net asp.net-mvc unit-testing

我在控制器文件中有以下内容:

public ActionResult Index()
{
    var model = new ClientGroupIndexViewModel()
    {
        AddScanUrl = Url.RouteUrl<ClientGroupsController>(c => c.CreateNewScan(null, null)),
        //other similar stuff
    };

    return View("ClientGroupsIndex", model);
}


public JsonResult CreateNewScan(ClientGroup clientGroup, Version version)
{
    //do something
    return Json(new{Message = "created new scan", Success = true});
}

我要为 CreateNewScan 编写单元测试用例。如何做到这一点(最好使用VS中的内置测试框架)?在这方面的任何指针都赞赏。

1 个答案:

答案 0 :(得分:1)

这应该可行,但由于某些原因我的工作站会抛出错误。

    [TestMethod]
    public void CreateNewScan()
    {
        HomeController controller = new HomeController();
        ClientGroup clientGroup = new ClientGroup(){ 
            //some property initializers
        };
        JsonResult result = controller.CreateNewScan(clientGroup, new Version(1, 0));
        dynamic data = result.Data;
        Assert.IsTrue(data.Success);
    }

请尝试让我知道。我的电脑最近一直在表现。

<强>更新

PC正在行动起来&#34;因为when using dynamic type, you must allow the test project可以看到您的Web应用程序的内部。因此,在Web应用程序的AssemblyInfo.cs中,请确保添加以下行:

[assembly: InternalsVisibleTo("WebApplication1.Tests")]

其中WebApplication1.Tests是测试项目的程序集名称。