我尝试在mvc 2中做一个简单的单元测试,但它抛出了这个错误。可以帮助我

时间:2013-08-27 12:22:53

标签: asp.net-mvc visual-studio-2010 unit-testing

我必须对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”)]它将检查我的字符串并显示成功消息。不知道它是如何工作的nu.Thanks你努力分析我的错误。

1 个答案:

答案 0 :(得分: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'");
    }
}