使用 prisma 和 graphql 测试流程

Testing flow using prisma and graphql

我使用 prisma-graphql 作为后端服务器,使用 jest & supertest 来测试 graphql 查询。 对于测试环境,我想建立一个内存数据库来在测试阶段创建和检索数据。我的问题是,

  1. 为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.');
      });
    })
    
  2. 我如何以及何时可以运行 prisma 命令?例如,我需要 运行 下面的内存数据库命令来创建表。 https://github.com/prisma/prisma/issues/732 似乎暗示内存迁移没有意义 - 换句话说,它不支持这样的事情?

    npx prisma migrate --experimental save/up
    npx prisma generate
    

我建议针对实际数据库进行集成测试,因为它们是根据您执行的 Queries/Mutations 测试您的代码的好方法。

我已经创建了一个 repo here,它针对实际的数据库执行集成测试,这个是针对 GraphQL 的。这些包含从头到尾的整个 Jest 设置。