单元测试Web服务方法

时间:2012-08-21 10:54:36

标签: c# unit-testing tdd mstest

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

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

为了确保没有出错,我决定为项目创建单元测试(是的!我知道在编写代码后执行它有点晚了。我会写单元 - 下次第一次测试)。

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

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

4 个答案:

答案 0 :(得分:2)

您所说的是集成测试

为您的Web服务编写此类测试不是问题。它们的编写方式与单元测试相同,但是测试实时系统和/或它的部件。您甚至可以在测试环境中启动Web服务。

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

如何延迟测试,只需在测试开始时设置Thread.sleep(1000)

答案 3 :(得分:0)

测试Web服务层背后的代码怎么样?我过去所做的就是使用Web服务作为业务逻辑库的包装器,其中所有真实代码都存在。然后,您可以对此库进行集成测试,而无需担心Web服务请求限制。