package org.jbehave.examples.core.stories; import org.jbehave.core.annotations.Given; import org.jbehave.core.annotations.Then; import org.jbehave.core.configuration.Configuration; import org.jbehave.core.junit.JUnitStory; import org.jbehave.core.reporters.NullStoryReporter; import org.jbehave.core.reporters.StoryReporterBuilder; import org.jbehave.core.steps.InjectableStepsFactory; import org.jbehave.core.steps.InstanceStepsFactory; public class StepMonitoring extends JUnitStory { @Override public Configuration configuration() { return super.configuration().useStoryReporterBuilder(new StoryReporterBuilder().withReporters(new StepMonitoringReporter())); } @Override public InjectableStepsFactory stepsFactory() { return new InstanceStepsFactory(configuration(), new MonitoringSteps()); } public static class StepMonitoringReporter extends NullStoryReporter { @Override public void beforeStep(String step) { System.out.println("beforeStep: "+step); } @Override public void successful(String step) { System.out.println("successful: "+step); } @Override public void ignorable(String step) { System.out.println("ignorable: "+step); } @Override public void pending(String step) { System.out.println("pending: "+step); } @Override public void notPerformed(String step) { System.out.println("notPerformed: "+step); } @Override public void failed(String step, Throwable cause) { System.out.println("failed: "+step); } } public static class MonitoringSteps { @Given("a successful step") public void givenASuccessfulStep(){ } @Given("a failing step") public void givenAFailingStep(){ throw new RuntimeException("Bum!"); } @Then("following step should be performed") public void followingStepShouldBePerformed(){ } @Then("following step should not be performed") public void followingStepShouldNotBePerformed(){ } } }