2009-09-02 112 views
1

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

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

我用第二种方法的问题是,如果我发送并期望来自Web服务的真实数据,那么我不能每次都声明结果,因为它们可能会改变!

回答

1

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

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

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