0

我必须对 MVC 2 中的一种方法或函数进行单元测试。它将在 Windows 应用程序上运行,但它在 mvc2 中显示以下错误消息,任何人都可以帮助我

Web 请求“LocalHost”成功完成,但未运行测试。这可能发生在配置用于测试的 Web 应用程序失败(处理请求时发生 ASP.NET 服务器错误)或没有执行 ASP.NET 页面时(URL 可能指向 HTML 页面、Web 服务或目录列表)。在 ASP.NET 中运行测试需要将 URL 解析为 ASP.NET 页面,并且页面才能正确执行到 Load 事件。请求的响应与测试结果一起存储在文件“WebRequestResponse_HelloTest.html”中;通常可以使用 Web 浏览器打开此文件以查看其内容。

这是我的代码

家庭控制器:

 public string Hello()
        {
            return  "This is my First Unit Testing";
        }

之后右键单击控制器,选择指定的方法并进行单元测试。

这里是 HomeControllerTest.cs 下面的测试代码

  [TestMethod()]
        [HostType("ASP.NET")]
        [AspNetDevelopmentServerHost("C:\\Users\\user\\Desktop\\praveen\\adcd\\adcd", "/")]
        [UrlToTest("http://localhost:50332/")]
        public void HelloTest()
        {
            HomeController target = new HomeController(); // TODO: Initialize to an appropriate value
            string expected = "This IS my First Unit Testing"; // TODO: Initialize to an appropriate value
            string actual;
            actual = target.Hello();
            Assert.AreEqual(expected, actual);
          //  Assert.Inconclusive("Verify the correctness of this test method.");
        }

TestFiles:
WebRequestResponse_HelloTest.html

最后,一旦我删除了 [HostType("ASP.NET")],我得到了答案,它会检查我的字符串并显示成功消息。不知道它是如何工作的。感谢您分析我的错误的努力。

4

1 回答 1

0

控制器只是一个类。您无需运行 asp.net 开发服务器即可测试您的输出。这取决于您要通过测试完成什么,但对我来说,我将编写单元测试来验证我在操作中的逻辑。如果您想要功能测试,您的应用程序和您的测试通过浏览器驱动程序和代码与您的应用程序交互,因为它存在于您的本地 IIS 或 asp.net 开发服务器上,那么我的示例将无济于事。如果您只想在控件中测试代码/逻辑,那么这里有一个单元测试示例,用于测试控制器的输出。

[TestClass]
public class HomeControllerTests
{
    [TestMethod]
    public void Hello_ReturnsString()
    {
        // Arrange
        const string expectedOutput = "This IS my First Unit Testing";
        HomeController controller = new HomeController();

        // Act
        string actualResult = controller.Hello();

        // Assert
        Assert.AreEqual(expectedOutput, actualResult, "Expected the result to be 'This IS my First Unit Testing'");
    }
}
于 2013-08-28T13:08:02.163 回答