Parameters 如何从外部资源使用JBehave表格参数
要从internet上的外部资源中找到JBehave表格参数使用的完整解决方案确实很难。因此,我以一种更具描述性的方式,用一个非常简单的例子来写这篇文章 本文介绍如何使用外部数据文件使用JBehave表格参数。以下步骤将描述如何使用maven使用该功能 如下配置pom文件。Parameters 如何从外部资源使用JBehave表格参数,parameters,jbehave,tabular,Parameters,Jbehave,Tabular,要从internet上的外部资源中找到JBehave表格参数使用的完整解决方案确实很难。因此,我以一种更具描述性的方式,用一个非常简单的例子来写这篇文章 本文介绍如何使用外部数据文件使用JBehave表格参数。以下步骤将描述如何使用maven使用该功能 如下配置pom文件。 <build> <testResources> <testResource> <directory>src/test/java&
<build>
<testResources>
<testResource>
<directory>src/test/java</directory>
<includes>
<include>**/*.story</include>
<include>**/*.table</include>**
</includes>
</testResource>
</testResources>
<plugins>
<plugin>
编写步骤类,如下所示
Given get price data <price>
When print price unit <unit>
Examples:
com/jbehave/example/sample_data.table
|price|unit|
|10|EUR|
|20|USD|
|30|XXX|
public class SampleSteps extends Steps {
@Given("get price data <price>")
public void getPrice(@Named("price") String price){
System.out.println("Price: " + price);
}
@When("print price unit <unit>")
public void printUnit(@Named("unit") String unit){
System.out.println("Unit: " + unit);
}
}
项目结构将看起来像
希望这是更多的描述 我们可以使用csv文件而不是。Table您可以实现自己的机制来读取步骤定义中的CSV
public class SampleSteps extends Steps {
@Given("get price data <price>")
public void getPrice(@Named("price") String price){
System.out.println("Price: " + price);
}
@When("print price unit <unit>")
public void printUnit(@Named("unit") String unit){
System.out.println("Unit: " + unit);
}
}
public class SampleScenario extends JUnitStories {
@Override
public Configuration configuration() {
return new MostUsefulConfiguration()
.useStoryLoader(new LoadFromClasspath(this.getClass()))
.useParameterConverters(new ParameterConverters().addConverters(new ParameterConverters.ExamplesTableConverter(new ExamplesTableFactory(new LoadFromClasspath(this.getClass())))))
.useStoryReporterBuilder(new StoryReporterBuilder().withDefaultFormats().withFormats(Format.CONSOLE, Format.HTML));
}
@Override
public InjectableStepsFactory stepsFactory() {
ArrayList<Steps> stepFileList = new ArrayList<Steps>();
stepFileList.add(new SampleSteps());
return new InstanceStepsFactory(configuration(), stepFileList);
}
@Override
protected List<String> storyPaths() {
return new StoryFinder().
findPaths(CodeLocations.codeLocationFromClass(
this.getClass()),
Arrays.asList("**/sample_story.story"),
Arrays.asList("")); }
@Override
@org.testng.annotations.Test
public void run() throws Throwable {
super.run();
}
}
useParameterConverters(new ParameterConverters().addConverters(new ParameterConverters.ExamplesTableConverter(new ExamplesTableFactory(new LoadFromClasspath(this.getClass())))))