【发布时间】:2017-03-29 21:35:09
【问题描述】:
我使用 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 测试(例如获取 /users/1) - 失败:响应代码是 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。
关于什么可能导致这种情况的任何想法?
【问题讨论】:
标签: postgresql npm postman ava koa2