准备测试用例

无论是单元测试还是业务测试,无非就是输入一些数据,然后看输出的结果是否符合预期。符合预期的,那么意味着程序运行正常;不符合预期,则可能是程序存在问题。

数据格式&安全性校验用例

  1. 对于各个输入参数,通常会有提供该参数及不提供该参数 2 种用例。即必填、可选。
  2. 对于各个输入参数,提供参数的格式是否符合接口要求的格式。基本上是符合要求的格式,或不符合接口要求格式 这 2 种用例。
  3. 对于各个输入参数,提供参数的值的长度是否符合接口的要求。一般会提供,0 长度参数值,正常参数值,大参数值或超大参数值 4 个用例进行测试。

测试输入数据及预期数据

测试数据可以采用 CSV 文件的方式提供,包含测试用例的输入数据以及预期数据

单元测试时数据库的处理

由于程序通常都会进行数据库的读写操作,因此在本机做业务接口单元测试时最好使用本机的数据库进行;对于业务系统使用 MYSQL 的系统而言,可以选 H2 内存型数据库(与 MYSQL 语法兼容性最好)进行测试。或者,使用 docker+mysql 的方式。若系统有大量 MYSQL 特色的 SQL 语法,那么只能采用 docker+mysql 的方式,也是最贴近业务系统的方式。

由于单元测试通过后,可能无需保留数据,因此可能是一次性的。

单体应用使用 docker+mysql 搭建测试环境

简单的方式是使用 docker-compose 进行测试环境的管理:

version: "3.1"

services:
  db:
    image: mysql:8.0.31
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    volumes:
      # 将本地的MYSQL初始化SQL语句文件映射到容器内部,一旦MYSQL初始化成功就会执行这些SQL文件,按照字母表顺序
      - /your/local/init_db_sql/:/docker-entrypoint-initdb.d
    environment:
      MYSQL_ROOT_PASSWORD: root

微服务+nacos 配置中心类型的测试环境搭建