在上一课中,我们讲解了怎么进行单元测试。虽然单独测试微服务内部的各个单元非常重要,但是,测试微服务的模块或者子系统能否正确地与外界交互也同样重要,这项工作可以通过集成测试来完成。这节课,我们将分别探讨在微服务架构下,集成测试的概念和实现方法,并分别以几个实例来说明。
集成测试(Integration Test)的定义有很多。简单来说,集成测试(也叫组装测试、联合测试)是单元测试的逻辑扩展,即把两个或者多个已经测试过的单元(见第三课中对于单元的定义)组合成一个子模块,再把这些子模块组合到一起,构成一个“子系统”。测试的目的就是检查,这些子模块能否以预期的方式互相协作,检查它们之间的通信和交互,核实接口是否工作正常,进而确保整个子系统的稳定运行。
虽然集成测试可以在很多级别上进行,但是在本课程所介绍的微服务架构中,集成测试主要是指:
- 微服务对外的模块(包括 HTTP 终端和 Gateway 部分)与外部服务(例如第三方支付、通知等)的通信;
- 数据库访问模块(Data Mapper/ORM)与外部数据库的交互。
也就是说,把对外模块与外部服务视为一个子系统,把数据库访问模块与数据库视为另外一个子系统,检查这