在Java中,我有一个String
对象,其中包含我希望由JBehave
作为步骤匹配和执行的文本。如何才能做到这一点?可以吗?
我真正想要做的是设置一个包装JBehave
步骤来检测另一个任意JBehave
步骤。它在调用"内部"之前和之后做了一些事情。步骤
所以我要说我已经有了以下
When I say Hello World
和
@When("I say $text")
public void iSay(final String text)
{
System.out.println(text);
}
我希望能够做到以下几点:
When I repeat 4 times I say Hello World
它会打电话:
@When("I repeat $count times $subStepString")
public void repeat(final int repeatCount, final String subStepString)
{
// prep code here
for (int i = 0; i < repeatCount; i++)
{
howDoIdoThisBitHere(subStepString);
}
// post process code here
}
说明doDoIdoThisBitHere(...)的部分应该最终使JBehave与subStepString
的值匹配,就好像在上面的情况中遇到的那样。这样我就可以使用这种方法调用其他任意东西。
答案 0 :(得分:0)
我不确定这是一个好主意,因为步骤类不应该依赖于核心配置(StepMatchers,Runners等),但这个解决方案是你想要的吗?
@When("I repeat $count times $subStepString")
public void repeat(final int repeatCount, final String subStepString)
{
// prep code here
for (int i = 0; i < repeatCount; i++)
{
StoryParser sp = configuration().storyParser();
Story s = sp.parseStory(subStepString);
StoryRunner e = configuredEmbedder().storyRunner();
e.run(configuration(), configuredEmbedder().candidateSteps(), s);
}
}