第04课:怎么针对微服务架构做集成测试?

在上一课中,我们讲解了怎么进行单元测试。虽然单独测试微服务内部的各个单元非常重要,但是,测试微服务的模块或者子系统能否正确地与外界交互也同样重要,这项工作可以通过集成测试来完成。这节课,我们将分别探讨在微服务架构下,集成测试的概念和实现方法,并分别以几个实例来说明。

集成测试(Integration Test)的定义有很多。简单来说,集成测试(也叫组装测试、联合测试)是单元测试的逻辑扩展,即把两个或者多个已经测试过的单元(见第三课中对于单元的定义)组合成一个子模块,再把这些子模块组合到一起,构成一个“子系统”。测试的目的就是检查,这些子模块能否以预期的方式互相协作,检查它们之间的通信和交互,核实接口是否工作正常,进而确保整个子系统的稳定运行。

虽然集成测试可以在很多级别上进行,但是在本课程所介绍的微服务架构中,集成测试主要是指:

  1. 微服务对外的模块(包括 HTTP 终端和 Gateway 部分)与外部服务(例如第三方支付、通知等)的通信;
  2. 数据库访问模块(Data Mapper/ORM)与外部数据库的交互。

也就是说,把对外模块与外部服务视为一个子系统,把数据库访问模块与数据库视为另外一个子系统,检查这两个子系统能否正常运行,从而确保整个微服务能够与外界正常交互。这两个子系统就是下图中用黄色虚线标出的部分:

image

对于第一种集成测试,因为服务与服务之间采用轻


版权声明:本文为weixin_41978708原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。