我使用 koa js 2 和 postgres 数据库制作了一些 REST API 端点。
我有一个 setup/teardown 程序,它在运行任何测试之前创建/删除 postgres 数据库目录(例如 test_db)。(我使用 npm script 'pretest' hook 来做 db setup 和 'posttest' 来做 db teardown)。
当我运行 ava js 测试时,我有:
2 个 POST 测试(插入 2 行)- 这两个都通过
1 个 GET 测试(例如 get /users/1)- FAIL:响应代码是 204 而不是 200
1 个 PUT 测试(例如 POST /users/:id)- FAIL:响应代码是 204 而不是 200 。
我可以针对我的开发配置运行这些测试,它们都通过了
我不明白 POST 如何成功(将一行插入到表中),然后刚刚插入的行的 GET 返回 204(无数据)。
目前没有发生测试数据库拆卸,所以我可以查看测试数据库并验证 POSTS 确实成功,插入的行具有正确的 ID 值(如预期的那样)。(例如,我可以看到一个 id==1 的用户和一个 id==2 的用户)所以在执行测试时调用端点 /users/1 或 /users/2 应该会成功。
如果我使用测试数据库启动我的服务器,并针对这些端点和测试数据库运行 POSTMAN,一切正常(例如 GET /users/1 返回正确,GET /users/2 也是如此)我得到 json 返回和 200 的代码而不是 204。
我不明白为什么当对 POSTMAN 的相同调用返回代码 200 和有效的 json 响应时,我的 ava 测试会得到代码 204。
关于可能导致这种情况的任何想法?