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秒内
关键的一点是,发送电子邮件所需的时间(几乎总是)是不确定的,因此需要测试它是在特定时间范围内发送的
请注意,我假设您的发送消息过程是一个同步操作,即程序执行仅在消息发送后进入摘要页面,尽管情况可能并非如此(通常是一个异步过程)。我的回答是否有帮助?你找到解决问题的办法了吗?