测试Web服务包装器

时间:2009-09-02 09:35:08

标签: c# web-services unit-testing

我有一个程序集,它包含了外部实时Web服务的功能。

如何有效地测试此Web服务。我应该创建Web服务的存根还是应该编写向Web服务发送和接收实时数据的测试?

我对第二种方法的问题是,如果我发送并期望来自Web服务的真实数据,那么每次我都无法断言结果,因为它们可能会发生变化!

1 个答案:

答案 0 :(得分:1)

如果包装器只将调用转发给没有条件逻辑的Web服务,那么创建不通过真实Web服务的测试是没有意义的。在这种情况下,您应该为每个操作创建一个测试,该测试应仅测试到达Web服务的能力并且在没有意外错误的情况下返回。返回的数据确实无关紧要。这是包装器和Web服务之间的集成测试。

如果你的包装器包含条件逻辑,那么创建运行所有路径的测试可能是个好主意。如果您不依赖于真实的Web服务,那么测试这些案例会更容易。

为了测试客户端代码(调用包装器的代码),您应该存储Web服务的包装器或存根。这将为您提供所需的控制,以保证客户端在给定相同输入的情况下始终接收相同的输出。