在JBehave中,可以在步骤级别添加BeforeStory或AfterStory注释。因此,如果有多个带有BeforeStory批注的Steps类,那么所有那些BeforeStory带注释的方法将在每个故事开始之前执行(这是不需要的)。
在JUnit中,我们可以根据需要在测试类中单独添加或保留BeforeClass或Before。所以我需要的是一种在故事级别添加BeforeStory或AfterStory的方法,就像JUnit测试类一样。
有没有办法将BeforeStory添加为故事文件中的生命周期?或任何替代解决方案?
以下示例显示仅在生命周期中添加Before。
http://jbehave.org/reference/stable/story-syntax.html
Lifecycle:
Before:
Given a step that is executed before each scenario
After:
Outcome: ANY
Given a step that is executed after each scenario regardless of outcome
Outcome: SUCCESS
Given a step that is executed after each successful scenario
Outcome: FAILURE
Given a step that is executed after each failed scenario
感谢。
答案 0 :(得分:0)
在我看来,jbehave现在没有这样的设施。但是尝试以下方法 - 在类文件中执行一个Given来初始化用户并在故事情节结束时定义另一个给予释放资源。我知道这种方法打破了整个和业务定义场景的BDD范式,但至少是一种解决方法。 为了确保它首先执行和最后执行,您可以使用(priority = 1)initUsers()和(priority = n)进行清理()。
答案 1 :(得分:0)
正如您从文档中引用的那样,在每个场景之后执行前后步骤,而不是如上所述步骤。没有工具可以在故事档案中定义“故事前”步骤。
在故事文件中定义内容的另一种方法是使用@BeforeStory注释方法,如下所述:http://jbehave.org/reference/stable/annotations.html