【发布时间】:2017-10-30 16:08:56
【问题描述】:
假设我在数据库中有 2 个表,一个名为 students,另一个名为 departments。 students 如下所示:
department_id, student_id, class, name, age, gender, rank
而departments 看起来像:
department_id, department_name, campus_id, number_of_faculty
我有一个 API 可以查询数据库并从 2 个表中检索各种信息。例如,我有一个端点,可以通过加入 2 个表来获取每个校区的学生人数。
我想对我的 API 端点进行集成测试。为此,我启动了一个本地数据库,运行数据库模式的迁移以创建表,然后用人工记录填充每个表,以便我确切地知道数据库中的内容。但事实证明,想出一个好的播种过程绝非易事。对于我上面描述的简单示例,我当前的方法涉及为每列生成多个不同的记录。例如,我需要至少 2 个校区(比如 main 和 satellite)和 3 个部门(比如 Electrical Engineering 和 Mathematics 用于 main 校区,English 用于 satellite 校区)。然后我需要每个部门至少有 2 名学生或总共 6 名学生。如果我将gender、age 和rank 混合在一起,你可以很容易地看到人工记录的数量呈指数增长。想出所有这些人工记录是手动的,因此维护起来很乏味。
所以我的问题是:一般来说,为集成测试设置和播种数据库的正确方法是什么?
【问题讨论】:
标签: java api jvm kotlin integration-testing