簡體   English   中英

MVC.NET中控制器的單元測試

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM