0

我对 BDD 很陌生,我正在尝试使用 BDD 为网站开发一个简单的注册模块

我有以下情况

Scenario: An anonymous visitor successfully signs up with the website  
Given the following email address: john.smith@gmail.com and a chosen member status of childminder and the following password: ------ 
When the anonymous visitor signs up  
Then a confirmation email with activation information is sent to the anonymous visitor

我很茫然自动化然后步骤(“然后将带有激活信息的确认电子邮件发送给匿名访问者”)

这是我所做的(使用 JBehave):

@Given("the following email address: $email and a chosen member status of $status and the following password: $password")
public void anonymousVisitorEntersDetails(String email, String status, String password) {
    pages.home().open();
    pages.home().enterDetails(email, status, password);
}

@When("the anonymous visitor signs up")
public void anonymousVisitorDoesRegister(String login, String password) {
    pages.home().doRegister();
}

@Then("a confirmation email with activation information is sent to the anonymous visitor")
public void activationInformationIsSent() {
    //TODO ??
}

我遇到的问题与其说是工具问题,不如说是设计问题。如果一些有经验的 BDD 从业者能帮助我解决这个问题,我将不胜感激......

4

1 回答 1

1

让我们从您的 Given 开始。这设置了上下文。如果我了解您的情况,可能感兴趣的相关内容是: - 未登录 - 在主页(或注册)页面上 不要在此处提及用户详细信息。

接下来,您的 When 步骤指定匿名用户注册的用户详细信息。

最后,Then 步骤需要检查是否发送了确认电子邮件。虽然发送电子邮件并检查它是否到达很诱人,但这将是 IMO 的错误。电子邮件不能保证到达,而且在任何情况下都很慢。让您的测试套件保持快速和健壮。

而是使用您的 When 语句的措辞或场景中的标签来指示您的应用程序应该使用模拟电子邮件组件构建。在您的 Then 步骤中,您可以询问模拟以验证它是否已按预期调用。

在您的测试中,您仍然需要集成和/或验收测试来验证“真实”电子邮件组件是否已正确部署。这可能是手动测试,也可能是登录到邮件客户端并轮询直到包含预期内容的电子邮件到达的缓慢且喜怒无常的自动化测试。

于 2013-02-11T15:36:15.320 回答