单元测试在连接到asp.net web服务时引发异常
本文关键字:服务 异常 web net 连接 asp 单元测试 | 更新日期: 2023-09-27 18:22:03
我创建了一个单元测试来测试我是否可以登录到我的ASP.NET web服务。web服务运行良好,甚至登录过程也运行良好。
然而,当我试图通过测试连接到它时,它给了我一个错误:
指定的URL('http://www.foo.com/')与有效的目录。配置为在IIS中的ASP.NET中运行的测试需要URL的有效目录。
我正在通过visualstudio运行我的web服务,因为该项目仍在开发中。
这是我的测试代码:
[TestMethod()]
[HostType("ASP.NET")]
[UrlToTest("http://www.foo.com/")]
public void Login_Test_It_Fails_If_GUID_IS_Wrong()
{
//Arrange
Service service = new Service();
string pGUID = string.Empty;
string connectionSQL = @"XXXXXXXXXX";
bool targetOutput = false;
//Act
targetOutput = service.Login(pGUID, connectionSQL);
//Assert
Assert.IsFalse(targetOutput);
}
提前谢谢。
您在这里进行集成测试,因为您正在测试您的应用程序是否可以与外部依赖项通信。
如果你想进行单元测试,你可能想探索一种不同的方法。
-
如果web服务是您控制的,那么您可以为服务本身编写测试,以确认其登录身份验证逻辑。
-
对于您的消费应用程序,您可以基于服务的模拟编写单元测试,以确保您的应用程序在收到来自服务的响应时表现出正确的行为。
另一方面,将要使用的连接字符串传递到服务中似乎是一个糟糕的设计。为什么调用应用程序需要知道服务应该使用什么数据库?
在ASP.NET中运行测试需要URL解析为ASP.NET页面,并且页面在Load事件之前才能正确执行
测试方法由页面加载事件调用。因此,您可以创建一个空白的aspx页面,并设置UrlToTest属性来挂起它。