3

查看 jBehave 的代码,我注意到所有 @BeforeStory/Scenarios 注释都针对 JBehave 权限范围内的所有 Stories/Scenarios 运行。Stories/Scenarios 和@BeforeStory/Scenario 注释之间似乎没有任何一一对应的关系。如果我错了,请纠正我。如果这是预期的行为,我怎样才能获得 @BeforeStory/BeforeScenarios 到故事和场景的一对一映射?

供您参考,这就是我正在做的事情:

对于每个文本故事,都有一个对应的 *Story.java,它扩展了 SuperStory.java,而 SuperStory.java 作为回报扩展了 JUnitStories。此外,还存在一个与每个文本故事对应的*Steps.java。*Steps.java 是从 SuperStory.java 中的一个普通 spring bean 注入的。除此之外,还有一个 LifeCycleSteps 扩展 PerStoriesWebDriverSteps。

我想要实现的目标:

我想配置我的@BeforeStory/@BeforeScenarios 以配置故事“x”的执行应该只执行步骤“x”的@BeforeStory/Scenarios

4

1 回答 1

0

由于 JBehave 是 BDD,因此您应该设计您的故事,以便您只需要一个 @BeforeScenario,因为场景中的每个步骤都将按顺序运行,任何先决条件都应该在 @Given 或 @BeforeScenario 中完成。其他不是 BDD 的测试框架需要 @Before,因为每个步骤都旨在设计为可以在没有任何其他依赖项的情况下运行。

于 2017-04-04T20:59:59.840 回答