asp.net mvc中的单元测试问题?

Posted

技术标签:

【中文标题】asp.net mvc中的单元测试问题?【英文标题】:Problems with unit testing in asp.net mvc? 【发布时间】:2010-10-19 14:43:21 【问题描述】:

更新:所以每当我拥有 HostType,AspNetDevelopmentServerHost,URLToTest 之类的所有元标记时,我都会收到错误消息。因此,当我评论这些标签时,我可以运行测试,但我需要这些标签才能使连接字符串可用于控制器连接到数据库。 我通过右键单击 asp.net mvc 中的操作并说 Create unit tests.. 创建了一个基本单元测试。我只是想运行一个基本单元测试。我收到这个错误 -

The test adapter 'WebHostAdapter' threw an exception while running test 'IndexTest'. The web site could not be configured correctly; getting ASP.NET process information failed. Requesting 'http://localhost:55767/VSEnterpriseHelper.axd' returned an error: The remote server returned an error: (500) Internal Server Error.

这是我的方法-

[TestMethod()]
        [HostType("ASP.NET")]
        [AspNetDevelopmentServerHost("C:\\Users\\Administrator\\Desktop\\MyWebsite\\Websites\\Customer1\\Customer1", "/")]
        [UrlToTest("http://localhost:55767/Admin/Dashboard")]
        public void IndexTest()
        

            DashboardController target = new DashboardController(); // TODO: Initialize to an appropriate value
            string id = string.Empty; // TODO: Initialize to an appropriate value
            ActionResult expected = null; // TODO: Initialize to an appropriate value
            ActionResult actual;
            actual = target.Index(id);
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        

有什么想法吗?我试图谷歌但没有为我的问题找到一个好的解决方案。我正在使用 VS2010 Ultimate 和 asp.net mvc 2.0。

【问题讨论】:

如果可能的话,你能发布索引操作方法和控制器构造器(如果有的话)吗? 【参考方案1】:

我通过右键单击 asp.net mvc 中的操作并说创建单元测试来创建一个基本单元测试..

当您在 ASP.NET Web 应用程序项目(这是 MVC 使用的)上执行此操作时,Visual Studio 会产生大量废话,并且每次您想要运行单个单元测试时都会尝试启动 Web 服务器。你不想要这个。

这里有两种可能性:

    当你开始一个新的 ASP.NET MVC 项目时,选择你想要一个默认模板中的单元测试项目(首选)。 您已经有一个 ASP.NET MVC 项目,并且想要向它添加单元测试。在这种情况下,只需右键单击解决方案并添加一个类型为 Test Project 的新项目。现在添加对您正在测试的 ASP.NET MVC 项目的引用并添加新的单元测试(添加新项)。

【讨论】:

@Darin Dimitrov 我认为这个答案错过了问题中的一个重要点:“......我需要有这些标签才能让控制器连接到数据库的连接字符串......”为了从 web.config 获取连接字符串,您需要有一个正在运行的 Web 服务器。

以上是关于asp.net mvc中的单元测试问题?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET-MVC:数据库默认值会破坏单元测试的精神吗? [关闭]

如何对 Asp.net MVC 文件进行单元测试

MVC 自定义过滤器,手动调用 ASP.NET 管道事件进行单元测试

在 ASP.NET Core MVC API 控制器上对 AuthorizeAttribute 进行单元测试

在 ASP.NET MVC 3 中的多个服务之间共享一个工作单元

ASP.NET中的MVC如何使用?