Hello,
I am new to JBehave and BDD. I would like to know whether it is right (from
a BDD point of view) for steps to interact with the database via a
dao/repository.
If that is the case, how can I alter the configuration below so that I can
inject/autowire Spring dependencies into my steps?
Regards,
Julien.
Configuration is show below:
*public class KadjoukorWebStories extends JUnitStories {
private WebDriverProvider driverProvider = new
PropertyWebDriverProvider();
private WebDriverSteps lifecycleSteps = new
PerStoriesWebDriverSteps(driverProvider); // or
// PerStoryWebDriverSteps(driverProvider)
private Pages pages = new Pages(driverProvider);
private SeleniumContext context = new SeleniumContext();
private ContextView contextView = new
LocalFrameContextView().sized(500, 100);
public KadjoukorWebStories() {
// If configuring lifecycle per-stories, you need to ensure that
you a
// same-thread executor
if (lifecycleSteps instanceof PerStoriesWebDriverSteps) {
configuredEmbedder().useExecutorService(MoreExecutors.sameThreadExecutor());
}
}
@Override
public Configuration configuration() {
Class<? extends Embeddable> embeddableClass = this.getClass();
return new SeleniumConfiguration()
.useSeleniumContext(context)
.useWebDriverProvider(driverProvider)
.useStepMonitor(new SeleniumStepMonitor(contextView,
context, new SilentStepMonitor()))
.useStoryLoader(new LoadFromClasspath(embeddableClass))
.useStoryReporterBuilder(
new
StoryReporterBuilder().withCodeLocation(codeLocationFromClass(embeddableClass)).withDefaultFormats()
.withFormats(CONSOLE, TXT, HTML, XML));
}
@Override
public InjectableStepsFactory stepsFactory() {
Configuration configuration = configuration();
return new InstanceStepsFactory(configuration, new
KadjoukorWebSteps(pages), lifecycleSteps, new
WebDriverScreenshotOnFailure(driverProvider,
configuration.storyReporterBuilder()));
}
@Override
protected List<String> storyPaths() {
return new
StoryFinder().findPaths(codeLocationFromClass(this.getClass()).getFile(),
asList("**/*.story"), null);
}
// This Embedder is used by Maven or Ant and it will override anything
set
// in the constructor
public static class SameThreadEmbedder extends Embedder {
public SameThreadEmbedder() {
useExecutorService(MoreExecutors.sameThreadExecutor());
}
}
}*