我创建了一个单元测试来测试我是否可以登录我的ASP.NET Web服务。 Web服务工作正常甚至登录过程。
然而,当我尝试通过我的测试连接到它时,它给了我一个错误:
指定的网址('http://www.foo.com/')与之对应 一个有效的目录。配置为在IIS中的ASP.NET中运行的测试需要a URL存在的有效目录。
我正在通过visual studio运行我的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);
}
提前致谢。
答案 0 :(得分:0)
您正在进行集成测试,因为您正在测试您的应用程序是否可以与外部依赖项进行通信。
如果您想进行单元测试,可能需要探索不同的方法。
如果Web服务是您控制的,您可以为服务本身编写测试,确认其登录验证逻辑。
对于您的消费应用程序,您可以根据服务的模拟编写单元测试,以确保您的应用程序在收到服务响应时表现出正确的行为。 / p>
另一方面,传递连接字符串以用于服务似乎是一个糟糕的设计。为什么调用应用程序需要知道服务应该使用什么数据库?
答案 1 :(得分:0)
在ASP.NET中运行测试需要URL解析为ASP.NET页面,并且页面要正确执行到Load事件。
测试方法由页面加载事件调用。因此,您可以创建一个空白的aspx页面,并设置UrlToTest属性来挂钩它。