[英]Unit test for controller in MVC.NET
我的控制器文件中包含以下内容:
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中的内置测试框架)? 在这方面的任何指针表示赞赏。
尽管我的工作站由于某种原因引发了错误,但这应该可以工作。
[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);
}
请尝试让我知道。 我的电脑最近一直运转良好。
UPDATE
PC正在“运行”,因为使用动态类型时,必须允许测试项目查看Web应用程序的内部。 因此,请确保在Web应用程序的AssemblyInfo.cs中添加以下行:
[assembly: InternalsVisibleTo("WebApplication1.Tests")]
其中WebApplication1.Tests
是您的测试项目的程序集名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.