使用 prisma 和 graphql 测试流程
Testing flow using prisma and graphql
我使用 prisma-graphql 作为后端服务器,使用 jest & supertest 来测试 graphql 查询。
对于测试环境,我想建立一个内存数据库来在测试阶段创建和检索数据。我的问题是,
为prisma客户端配置测试数据库的好方法是什么?我是否需要在 before all 阶段配置内存数据库?像下面这样?
//setup.js for test
beforeAll(async() => {
db = new sqlite3.Database(':memory:', (err) => {
if (err) {
return console.error(err.message);
}
console.log('Connected to the in-memory SQlite database.');
});
})
我如何以及何时可以运行 prisma 命令?例如,我需要 运行 下面的内存数据库命令来创建表。 https://github.com/prisma/prisma/issues/732 似乎暗示内存迁移没有意义 - 换句话说,它不支持这样的事情?
npx prisma migrate --experimental save/up
npx prisma generate
我建议针对实际数据库进行集成测试,因为它们是根据您执行的 Queries/Mutations 测试您的代码的好方法。
我已经创建了一个 repo here,它针对实际的数据库执行集成测试,这个是针对 GraphQL 的。这些包含从头到尾的整个 Jest 设置。
我使用 prisma-graphql 作为后端服务器,使用 jest & supertest 来测试 graphql 查询。 对于测试环境,我想建立一个内存数据库来在测试阶段创建和检索数据。我的问题是,
为prisma客户端配置测试数据库的好方法是什么?我是否需要在 before all 阶段配置内存数据库?像下面这样?
//setup.js for test beforeAll(async() => { db = new sqlite3.Database(':memory:', (err) => { if (err) { return console.error(err.message); } console.log('Connected to the in-memory SQlite database.'); }); })
我如何以及何时可以运行 prisma 命令?例如,我需要 运行 下面的内存数据库命令来创建表。 https://github.com/prisma/prisma/issues/732 似乎暗示内存迁移没有意义 - 换句话说,它不支持这样的事情?
npx prisma migrate --experimental save/up npx prisma generate
我建议针对实际数据库进行集成测试,因为它们是根据您执行的 Queries/Mutations 测试您的代码的好方法。
我已经创建了一个 repo here,它针对实际的数据库执行集成测试,这个是针对 GraphQL 的。这些包含从头到尾的整个 Jest 设置。