2015-06-02 207 views
1

我试图让一个afterScenario当前正在运行的故事/场景中,使用“语境”的对象:如何获得当前的故事/场景的场景后jbehave

Context context = new Context(); 
    String currentScenario = context.getCurrentScenario(); 
    System.out.println("currentScen:" + currentScenario); 

但currentScenario的回报“空值'。这是为什么?如何返回当前正在运行的故事/情景

非常感谢您的帮助

回答

0

我想你问两个不同的问题。我会尽力分开解决它们。

第一个问题是“为什么创建上下文并调用getCurrentScenario()不返回当前正在运行的场景?”。我假设你引用了org.jbehave.core.context.Context类。在这种情况下,您创建了一个新的上下文实例,该实例没有关于当前运行场景的详细信息。所以这是有道理的,这返回null。某处可能有一个StepMonitor具有这样的上下文,但是您无法从该代码访问它。

第二个是“如何从AfterScenario方法中访问当前方案?”从生命周期方法(场景/故事/故事之前/之后)访问这些数据的正常方法是使用记者。这基本上是一个听众,可以在故事运行时获得事件。然后,您可以跟踪故事/场景/步骤是否正在进行,并将其提供给您的生命周期方法。我没有提供一个例子,而是指出一个相关的问题,这个问题已经有了一个涵盖相同用例的例子。

Jbehave get story name inside @BeforeStory

相关问题