嘲笑单元测试的重要部分?

Man*_*nav 2 java unit-testing web-services jax-ws

我有一个调用第三方Web服务的Web服务.

现在我想对我的网络服务进行单元测试.为此,我应该模拟第三方Web服务还是在测试期间调用它?

是否有关于单元测试的标准文件?

rol*_*lve 5

是的,您应该模拟第三方Web服务进行单元测试.这有一些优点:

  1. 您的单元测试独立于其他组件,实际上只测试单元而不是Web服务.如果您在单元测试中包含该服务并且它们失败,您将无法知道问题是在您的代码中还是在外部Web服务中.

  2. 您的测试与环境无关.如果Internet连接断开或者您想要在完全没有Internet访问权限的计算机上进行测试,则您的测试仍然有效.

  3. 您的测试将是 ,而无需实际连接到Web服务.这可能看起来不是什么大事,但如果你有很多测试(你应该这么做),它真的会很烦人.

  4. 您还可以通过模拟发送意外的事情来测试单元的稳健性.这可能总是发生在现实世界中,如果确实如此,您的Web服务应该做出很好的反应,而不仅仅是崩溃.使用真实的Web服务时无法测试.

但是,还有集成测试.在那里,您测试完整的设置,所有组件放在一起(集成).这是您使用真实Web服务而不是模拟的地方.

两种测试都很重要,但单元测试通常更早,更频繁地完成.它可以(并且应该)在创建系统的所有组件之前完成.集成测试要求所有大多数组件的进度都很小.