问题描述
紧紧按照本jbehave Getting Started
教程逐步进行,“ 部分说: […]
ICanToggleACell.java类将允许其自身作为JUnit测试运行。
这意味着在构建路径中需要JUnit库。
使用Eclipse:
- 选择当前项目,然后右键单击它,“ 构建路径” ,“ 配置构建路径…”。
- [当前项目] , Java构建路径 , 库的 属性,单击 [添加库…]
- 添加库,选择 JUnit ,单击 [下一步]
- JUnit库,JUnit库版本,选择您要使用的版本,单击 [完成]
- Java构建路径,单击 [确定]
- 在项目资源管理器中,选择您的
ICanToggleACell.java
类,右键单击它,然后单击“运行方式”,然后单击“ JUnit Test”
因此,这与上面的示例代码相同。StackBehavIoUrStory.java
在将适当的库添加到Java构建路径后,该类应让自己作为JUnit测试运行。
解决方法
尽管我读了很多,但是关于如何使用JBehave的文章很多,但我无法使它正常工作。这是我到目前为止所执行的步骤:
- 创建了新的Java项目
- 下载了JBehave JAR文件版本3.6.8,并将其添加到我的构建路径库中
com.wmi.tutorials.bdd.stack.specs
在我的工作区中的test source文件夹下创建了一个名为的包- 将JBehave JAR文件添加到我的构建路径库配置中
- 在上述包(StackBehaviourStories.story)中创建了一个JBehave故事
- 在上述包(StackBehaviourStory.java)中创建了Java类
- 在上述包(StackBehaviourSteps.java)中创建了一个Java类。
- 在我的Java类中导入了Given,Named,When,When批注
- 在我的JBehave故事文件中编写了两种不同的方案
但是,我还是无法运行/运行它!=(
故事文件:
Narrative:
In order to learn to with JBehave using Eclipse
As a junior Java developer though senior in .Net and in BDD
I want to define the behaviour of a custom stack
Scenario: I push an item onto the stack
Given I have an empty stack
When I push an item 'orange'
Then I should count 1
Scenario: I pop from the stack
Given I have an empty stack
When I push an item 'apple'
And I pop the stack
Then I should count 0
故事课
package com.wmi.tutorials.bdd.stack.specs
import org.jbehave.core.configuration.MostUsefulConfiguration;
import org.jbehave.core.junit.JUnitStory;
public class StackBehaviourStory extends JUnitStory {
@Override
public Configuration configuration() { return new MostUsefulConfiguration(); }
@Override
public InjectableStepsFactory stepsFactory() {
return new InstanceStepsFactory(configuration(),new StackBehaviourSteps());
}
}
步骤类
package com.wmi.tutorials.bdd.stack.specs
import org.jbehave.core.annotations.Given;
import org.jbehave.core.annotations.Named;
import org.jbehave.core.annotations.Then;
import org.jbehave.core.annotations.When;
import org.jbehave.core.junit.Assert;
public class StackBehaviourSteps {
@Given("I have an empty stack")
public void givenIHaveAnEmptyStack() { stack = new CustomStack(); }
@When("I push an item $item")
public void whenIPushAnItem(@Named("item") String item) { stack.push(item); }
@Then("I should count $expected")
public void thenIShouldCount(@Named("expected") int expected) {
int actual = stack.count();
if (actual != expected)
throw new RuntimeException("expected:"+expected+";actual:"+actual);
}
}
我目前正在将Eclipse Kepler(4.3)JEE与使用JUnit,Google App Engine所需的一切配合使用,是的,按照Eclipse
JBehave安装教程正确安装了JBehave。
我无法正常工作。那么如何使用Eclipse,JBehave和JUnit使其正常工作?