使用人工数据设置数据库和种子以进行集成测试的正确方法是什么
假设我在一个数据库中有 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 个校区(比如 and)和 3 个部门(比如和校园和校园)。然后,每个部门至少需要2名学生或总共6名学生。如果我混合使用 和 ,你可以很容易地看到人工记录的数量呈指数级增长。提出所有这些人工记录是手动的,因此维护起来很乏味。main
satellite
Electrical Engineering
Mathematics
main
English
satellite
gender
age
rank
所以我的问题是:一般来说,为集成测试设置和种子数据库的正确方法是什么?