Bdd JBehave为每个故事/场景设置@BeforeStory/beforecasenario之间的映射

Bdd JBehave为每个故事/场景设置@BeforeStory/beforecasenario之间的映射,bdd,jbehave,Bdd,Jbehave,查看jBehave的代码,我注意到所有@BeforeStory/Scenarios注释都适用于jBehave权限内的所有故事/场景。在故事/场景和@BeforeStory/场景注释之间似乎没有任何一对一的对应关系。如果我错了,请纠正我。如果这是预期的行为,我如何获得@BeforeStory/beforescapenarios到故事和场景的一对一映射 供您参考,这是我正在做的: 对于每个文本故事,都有一个对应的*story.java,它扩展了SuperStory.java,而SuperStory.

查看jBehave的代码,我注意到所有@BeforeStory/Scenarios注释都适用于jBehave权限内的所有故事/场景。在故事/场景和@BeforeStory/场景注释之间似乎没有任何一对一的对应关系。如果我错了,请纠正我。如果这是预期的行为,我如何获得@BeforeStory/beforescapenarios到故事和场景的一对一映射

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

对于每个文本故事,都有一个对应的*story.java,它扩展了SuperStory.java,而SuperStory.java反过来又扩展了JUnitStories。此外,还存在与每个文本故事对应的*Steps.java*java是从SuperStory.java中的一个公共Springbean注入的。除此之外,还有扩展PerStoriesWebDriverSteps的单一生命周期estps

我希望实现的目标:


我想将我的@BeforeStory/@beforescapenarios配置为:故事“x”的执行应该只执行步骤“x”的@BeforeStory/场景

因为JBehave是BDD,所以你应该设计你的故事,这样你只需要有一个@beforescapenario,因为场景中的每一步都是按顺序运行的,任何先决条件都应该在@Given或@before场景中完成。其他非BDD的测试框架需要一个@Before,因为每个步骤都设计成可以在没有任何其他依赖项的情况下运行。

您找到解决方案了吗?