【问题标题】:Test dependent Rest API Calls with jest and supertest使用 jest 和 supertest 测试依赖的 Rest API 调用
【发布时间】:2021-10-21 21:29:04
【问题描述】:

我正在编写一个用于身份验证的 REST API,如果在正文中使用 mailpassword 调用端点 /user/login,它将返回一个令牌。我可以覆盖所有出现错误的代码,例如正文中缺少passwordmail,或者数据库中不存在邮件。我是否可以在不依赖相应的 POST 端点在数据库中正确注册用户的情况下测试此端点以获得成功的身份验证。

在我的例子中,我有一个端点/user/register,它接受mail, name, password 并在数据库中创建一个用户。

有没有办法独立测试这两个依赖端点?

编辑:我能想到的唯一方法是在调用之前发布用户,然后对其进行测试并单独测试发布端点

【问题讨论】:

    标签: node.js express jestjs


    【解决方案1】:

    推荐解决方案

    我认为你不应该过度设计这个。在同一个文件中编写 2 个测试用例,名为 authentication.test.js

    1. 注册用户
    2. 用注册用户登录
    3. *删除用户(测试帐户删除是否可行?)

    或者在第 3 点清理afterAll/afterEach 中的用户

    对于应用程序而言,两者都必须成功,因此只要将它们放在同一个测试文件中,它们就可以相互依赖。如果一个失败,你必须检查/修复反正。

    回答问题

    您可以在数据库中存储一个测试用户,这是执行测试的必要条件。要么在那里静态保存它,要么在beforeAll/beforeEach 中创建它。但是如果你有一个测试,哪个寄存器是用户,你为什么要做两次?

    【讨论】:

    • 我也不知道。无论如何,我认为我过度设计,所以这似乎是合理的。感谢您的帮助
    猜你喜欢
    • 2019-07-31
    • 1970-01-01
    • 2021-07-21
    • 2014-12-14
    • 2021-08-15
    • 2015-07-11
    • 2018-09-28
    • 1970-01-01
    • 2020-01-11
    相关资源
    最近更新 更多