JBehave - 标记为待定的所有步骤?

时间:2012-01-11 21:02:53

标签: groovy junit jbehave

我正在尝试创建并运行一个简单的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;
    }
}

有或没有委托(在MySteps的所有注释方法中复制和粘贴),每当我运行JBehave时,我得到以下输出:

somePattern(){
  // PENDING
}

就像个别故事没有采取措施一样。

当我创建“Stories”类并使用storyPaths拉入所有故事文件时,将定义各个步骤。使用调试器,我看到candidateSteps正在被击中,但它没有提供所需的数据。

这可能会发生什么?

4 个答案:

答案 0 :(得分:2)

您无需委托步骤。而且你不应该覆盖candidateSteps,而是覆盖stepsFactory。在JBehave的更高版本中,不推荐使用candidateSteps,以使工厂方法的首选项更加突出(http://jbehave.org/reference/stable/javadoc/core/org/jbehave/core/ConfigurableEmbedder.html#candidateSteps())

请参阅此博客,我在其中详细介绍了基本JBehave配置的工作原理:

http://blog.codecentric.de/en/2012/06/jbehave-configuration-tutorial/

安德烈亚斯

答案 1 :(得分:1)

这是你的回答伙伴: 格式包已更改。

这是不推荐使用的 import static org.jbehave.core.reporters.StoryReporterBuilder.Format.HTML;

这是新的:) import static org.jbehave.core.reporters.Format.HTML;

花了一段时间才找到答案,但隐藏在jbehave文档

希望它有所帮助! 干杯!

答案 2 :(得分:0)

您不需要使用@Delegate - 您的JUnitStory不是您的Steps类。你可以尝试通过你有这个步骤吗?

当你传入一个已经为Steps类操作字节码的类时,JBehave可能再也看不到jbehave注释了。

答案 3 :(得分:-5)

JBehave是一种陈旧但不发达的技术。不要使用它。