我目前正在编写一个应用程序,它是最终用户和Web服务之间的代理。
用户请求服务,应用程序使用适当的参数集调用Web服务方法,并返回结果。
为了确保没有出错,我决定为项目创建单元测试(是的!我知道在编写代码后执行它有点晚了。我会写单元 - 下次第一次测试)。
在这些单元测试中,我必须向Web服务发出实际请求,以确保没有引发权限异常,服务相关异常等。因此,提取接口并模拟服务以进行测试并没有帮助。编写实际调用真实Web服务的单元测试是否可以接受?
如果我的网络服务只允许每分钟一个请求,是否可能在两次测试之间有延迟?
答案 0 :(得分:2)
您所说的是集成测试。
为您的Web服务编写此类测试不是问题。它们的编写方式与单元测试相同,但是测试实时系统和/或它的部件。您甚至可以在测试环境中启动Web服务。
这取决于您和您的测试环境,以限制呼叫延迟的情况或模拟任何其他情况。
答案 1 :(得分:1)
我的理解是,单元测试应该立即产生结果。你所追求的是集成测试,而不是单元测试。
答案 2 :(得分:1)
当然,这是可以接受的,虽然他们会比单元测试更多的“集成测试”,因为您正在测试整个系统的集成。
如何延迟测试,只需在测试开始时设置Thread.sleep(1000)
。
答案 3 :(得分:0)
测试Web服务层背后的代码怎么样?我过去所做的就是使用Web服务作为业务逻辑库的包装器,其中所有真实代码都存在。然后,您可以对此库进行集成测试,而无需担心Web服务请求限制。