Asp.net core 如何为通过电子邮件激活帐户创建集成测试

Asp.net core 如何为通过电子邮件激活帐户创建集成测试,asp.net-core,integration-testing,bdd,Asp.net Core,Integration Testing,Bdd,BDD和TDD非常新 我有一个web api(asp.net核心),允许用户通过电子邮件和密码注册 成功后,/my server将通过电子邮件发送激活链接 此链接包含存储在该用户记录字段中的guid guid是在服务器上自动创建的 用户将收到该电子邮件,单击该链接并激活其帐户,以便登录 如何为此创建集成测试/脚本 硬编码guid的解决方案是否仅用于此测试?在服务器上调整代码似乎是错误的,因为它看起来不像是一个正确的测试 任何关于这方面的指导都会很好。这是一个我认为有点难以自动化的案例 您可以自动

BDD和TDD非常新

我有一个web api(asp.net核心),允许用户通过电子邮件和密码注册

成功后,/my server将通过电子邮件发送激活链接

此链接包含存储在该用户记录字段中的guid

guid是在服务器上自动创建的

用户将收到该电子邮件,单击该链接并激活其帐户,以便登录

如何为此创建集成测试/脚本

硬编码guid的解决方案是否仅用于此测试?在服务器上调整代码似乎是错误的,因为它看起来不像是一个正确的测试


任何关于这方面的指导都会很好。

这是一个我认为有点难以自动化的案例

您可以自动化几乎所有的部分,但是自动化整个流程可能意味着实现一个邮件客户端。这可能太过分了

我会考虑验证邮件链接是否被发送。我会自动确保帐户在正确的guid上被激活,并且在出现错误的guid时不会被激活

您的guid将在服务器上自动创建。我会打开,这样测试脚本就可以获得guid。“打开”可能意味着测试脚本可以从后端读取值,或者甚至可以窥视数据库以获取它

如果你正在寻找BDD方法,他几乎所有的工作都会在幕后完成。我可能会为快乐之路创建一个类似这样的场景

Scenario: A new user activates an account
  Given that Alice want to sign up for a new account
  When she activates her account
  Then she is able to login
我在这里避免谈论像guid这样的技术性东西。我试着使用一种非技术人员能够理解的语言。技术上的东西是需要的,但是它们可以在支持像这样的场景自动化的步骤上处理

guid的发送可以在这种情况下实现。这可能是验证将执行发送的功能是否被调用的问题

激活链接的验证也可以进行验证,支持代码需要找到guid或使用硬编码。然后触发验证功能


最后,通过激活帐户,Alice将能够登录。

嗨,Thomas,是的,这是我在你发布答案之前采取的方法。一字不差!