我们假设我们有多个这样的测试:
Scenario: trader is not alerted below threshold
Given a stock of symbol STK1 and a threshold of 10.0
When the stock is traded at 5.0
Then the alert status should be OFF
但扭曲的是所有"鉴定"必须在运行任何测试之前完成设置。最好的方法是什么?
答案 0 :(得分:0)
检查http://jbehave.org/reference/stable/story-syntax.html以查看故事文件中的Lifecycle:
步骤。但请注意,这些是在每个场景之前/之后执行的。
还有@BeforeStory
和@AfterStory
注释,它们使用起来非常明显,但您可能需要查看文档:{{3}}。
但是,您可能会觉得在故事文件中包含所有会更好......据我所知,您无法在故事文件中定义一个步骤,该步骤在执行之前运行这个故事。
我也遇到了缺乏'以前的这个功能,但我认为它没有实现的原因是它不适合BDD方法,场景应该是独立可执行和可理解的。这些步骤通常与某种环境准备(全局适用于所有场景)有关,这对于人类读者(利益相关者)并不重要,因此不应成为“用户故事描述”的一部分。 .story
文件应该是哪个。
如果没有重大性能问题,我发现 - 从可读性的角度来看 - 最好在每个场景之前运行这些设置/拆卸的东西。如果您使用Lifecycle:
步骤,则不会以重复方式结束,任何人类读者都可以通过阅读故事文件来执行测试。但那只是我的意见。
所以我认为你有这些选择:
LifeCycle:
步骤@BeforeStory
和@AfterStory
注释Lifecycle:
部分编写步骤,并破解这些步骤的实施,以便它们在故事中执行一次(甚至更多的是hackish)