【发布时间】:2012-02-01 15:01:45
【问题描述】:
我创建了一个单元测试来测试我是否可以登录到我的 ASP.NET Web 服务。 Web 服务工作正常,甚至登录过程。
但是,当尝试通过我的测试连接到它时,它给了我一个错误:
指定的 URL ('http://www.foo.com/') 不对应 一个有效的目录。在 IIS 中配置为在 ASP.NET 中运行的测试需要 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);
}
提前致谢。
【问题讨论】:
-
如果它连接到 Web 服务,它不是单元测试,而是集成测试。如果您只是测试 Login 方法的逻辑,您应该将逻辑提取到另一个类(您可以将其注入到服务中)并对该类进行单元测试而不实例化服务。
-
单元测试真的应该做集成测试吗?
-
是的,你是对的,不应该,我对单元测试/集成测试很陌生,实际上这是我的第一次实验。尽管我从未真正实现过任何测试用例,但我对理论很熟悉。但是,假设这是一个集成测试。为什么它不起作用?
-
我不知道。我怀疑它是安全性(因为单元测试通常在它们自己的目录和线程中运行)或网络设置。如果你把它指向本地主机,它会工作吗?
标签: c# .net web-services integration-testing