1

我目前正在编写一个应用程序,它是最终用户和 Web 服务之间的一种代理。

用户请求服务,应用程序调用设置适当参数的 Web 服务方法,并返回结果。

为了确保没有出错,我决定为该项目创建单元测试(是的!我知道在编写代码之后这样做有点晚了。下次我会先编写单元测试)。

在这些单元测试中,我必须向 Web 服务发出真正的请求,以确保不会引发权限异常、服务相关异常等。因此,提取接口并模拟服务进行测试是没有帮助的。编写实际调用真正的 Web 服务的单元测试是否可以接受?

如果我的网络服务只允许例如每分钟一个请求,是否有可能在两个测试之间有延迟?

4

4 回答 4

2

您所说的是集成测试

为您的 Web 服务编写这样的测试不是问题。它们以与单元测试相同的风格编写,但测试实时系统和/或它的部分。您甚至可以在测试上下文中启动您的 Web 服务。

这取决于您和您的测试环境来限制呼叫延迟的情况或模拟任何其他情况。

于 2012-08-21T11:01:28.517 回答
1

我的理解是单元测试应该立即产生结果。您所追求的是集成测试,而不是单元测试。

于 2012-08-21T10:57:06.923 回答
1

当然,这是可以接受的,尽管它们会比单元测试更多“集成测试”,因为您正在测试集成的整个系统。

您可以做些什么来延迟测试,就是简单地将 aThread.sleep(1000)放在测试的开头。

于 2012-08-21T11:03:02.407 回答
0

那么测试 Web 服务层背后的代码呢?我过去所做的只是将 Web 服务用作所有真实代码所在的业务逻辑库的包装器。然后你可以在这个库上进行集成测试,而不用担心你的 Web 服务请求限制。

于 2012-08-21T11:09:46.757 回答