Cucumber 带日期和时间戳的BBD功能

Cucumber 带日期和时间戳的BBD功能,cucumber,bdd,acceptance-testing,lettuce,user-acceptance-testing,Cucumber,Bdd,Acceptance Testing,Lettuce,User Acceptance Testing,如何最好地处理功能定义中的时间戳(日期、时间等) 示例 功能:信息状态 In order to record activty on a message As a administrator I want to log when a message was created, delivered, and read by an end user 场景大纲:消息已创建状态 Given I have configured an e-mail service

如何最好地处理功能定义中的时间戳(日期、时间等)

示例

功能:信息状态

    In order to record activty on a message

    As a administrator

    I want to log when a message was created, delivered, and read by an end user
场景大纲:消息已创建状态

    Given I have configured an e-mail service

    When I perform a send operation with a message body of:

    """
      James,

      Fancy meeting for lunch?
    """       
   Then I should see a new message with a created timestamp of ?????
环境

操作系统:Linux/Mac

语言:


BDD框架:

当消息被发送时,我假设用户会看到一个消息摘要屏幕。如果是这样,您可以将测试重新编写为:

Given I have configured an e-mail service
When I send a message
Then I should see a sent message summary
And that it was sent in a timely manner
我要做的第一件事是断言消息摘要与预期的一样,例如,可能显示消息的前二十个字符。如果你不这样做,那么忽略这个建议

接下来,您的应用程序可能会对发送消息所需的时间有一个非功能性要求(例如,发送消息最多需要10秒)。我首先要做的是在“when I send a message”步骤定义中记录消息发送的时间。然后在“并且它是及时发送的”步骤定义中,我断言显示的消息时间的值在发送时间的10秒内

关键的一点是,发送电子邮件所需的时间(几乎总是)是不确定的,因此需要测试它是在特定时间范围内发送的


请注意,我假设您的发送消息过程是一个同步操作,即程序执行仅在消息发送后进入摘要页面,尽管情况可能并非如此(通常是一个异步过程)。

我的回答是否有帮助?你找到解决问题的办法了吗?