-1

当我写:

When I fill in "To" with "example1@example.com, example2@example.com"
And I press "Send testimonials request"
Then I should see "Testimonial requests have been successfully sent"
And "example1@example.com" should receive an email with subject "Add a testimonial..."
And "example2@example.com" should receive an email with subject "Add a testimonial..."

一切正常。

但如果我写:

When I fill in "To" with "example1@example.com, example2@example.com"
And I press "Send testimonials request"
Then "example1@example.com" should receive an email with subject "Add a testimonial..."
And "example2@example.com" should receive an email with subject "Add a testimonial..."
And I should see "Testimonial requests have been successfully sent"

没有任何效果......只有一行被移到最后......繁荣......

原因可能是在检查电子邮件之前有一些延迟?或类似的东西。

4

2 回答 2

2

这是黄瓜的异步行为。在第一种情况下,您通过等待一条消息来等待操作完成。内部黄瓜驱动程序“等待”直到元素通过间隔和保护延迟(水豚等待时间)轮询该元素变得可见。

在第二种情况下,您会立即检查电子邮件。Cucumber 对您的控制器/动作一无所知,并且不与它们同步。

您可以离开第一个案例,也可以在电子邮件检查步骤中引入某种轮询。

于 2012-03-14T10:27:50.820 回答
1

这很可能是时间问题,具体取决于您使用的浏览器驱动程序。我们已经看到很多使用 Capybara 和 Selenium 的情况。步骤“我应该看到...”实际上使测试停止并等待该消息显示在页面上(这是电子邮件发送发生的时间)。如果将其移至最后,则“应该收到电子邮件”步骤可能发生得太快,从而在应用程序实际有机会发送电子邮件之前做出断言。

于 2012-03-14T03:44:48.763 回答