我必须对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你努力分析我的错误。
答案 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'");
}
}