我正在尝试创建并运行一个简单的JUnitStory来运行一个.story文件。
我有这个:
class Scenario1 extends JUnitStory {
@Delegate MySteps steps = new MySteps()
@Override
public Configuration configuration() {
return new MostUsefulConfiguration()
.useStoryLoader(new LoadFromRelativeFile(new File('src/test/groovy').toURL()))
.useStoryReporterBuilder(
new StoryReporterBuilder()
.withDefaultFormats()
.withFormats(Format.HTML, Format.CONSOLE, Format.TXT)
);
}
@Override
public List candidateSteps() {
final candidateSteps = new InstanceStepsFactory(configuration(), this).createCandidateSteps()
return candidateSteps;
}
}
有或没有委托(delegate)(在MySteps的所有带注释的方法中复制和粘贴),每当我运行JBehave时,我都会得到以下输出:
somePattern(){
// PENDING
}
就像每个故事都没有跟上步伐。
当我创建一个“Stories”类并使用
storyPaths
提取所有故事文件时,将定义各个步骤。使用调试器,我发现候选步骤已被命中,但是并没有获取所需的数据。这可能是怎么回事?
最佳答案
您无需委托(delegate)给步骤。而且,您不应该覆盖候选人步骤,而应该覆盖stepsFactory。在更高版本的JBehave中,不建议使用候选人步骤,以使工厂方法的首选项更加突出(http://jbehave.org/reference/stable/javadoc/core/org/jbehave/core/ConfigurableEmbedder.html#candidateSteps())
请参阅此博客,我在其中详细解释了基本JBehave配置的工作方式:
http://blog.codecentric.de/en/2012/06/jbehave-configuration-tutorial/
安德烈亚斯(Andreas)
关于groovy - JBehave-所有步骤都标记为待处理吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8826573/