首页 > 解决方案 > 如何使用 Jest 在我的数据库中创建一个默认项目,以便我可以测试我的 API CRUD 操作?

问题描述

我有一个完整的 API 构建,它可以处理所有 CRUD 操作。我的 api 处理服务的创建。我正在使用带有我的 API 的 MYSQL 数据库,其中包含一个名为service. 现在我希望能够插入一个模拟/默认服务对象,以便我可以在所有测试中运行相同的 服务对象,并在最后删除它,这样我就不会用冗余数据填充我的服务表。我希望该服务对象能够通过我几乎所有的测试,除了我的 Post 请求。我怎样才能用 Jest 做到这一点?

这是我的 service.test.js 文件中的内容

如何在所有测试之前创建服务对象并在所有测试之后将其删除并将其作为全局变量保存到我的文件中?

标签: node.jsexpressjestjs

解决方案


Jest为您的问题/情况提供beforeAllafterAll

  • beforeAll - 函数将在所有测试之前运行。
  • afterAll - 函数将在所有测试后运行

代码结构:

...

beforeAll((done) => {
    //Insert your mock data on database
});

afterAll((done) => {
    //Delete your mock data from database 
});

test('', async() => {
   //Your test with database mock data
});

....

参考: 安装和拆卸 -> 一次性安装


推荐阅读