yeg*_*256 11 java testing bdd jbehave
我试图以一种非常简单的方式使用BDD,以便最大限度地减少Java代码的数量.我想创建两个文件,一个是我的故事:
Given user is named "John Doe"
And user is authenticated
When user changes his password to "a1b2c3"
Then user password equals to "a1b2c3"
Run Code Online (Sandbox Code Playgroud)
接下来,我创建一个Java类:
public class UserManipulator {
@Given("$user is named $name")
public User shouldExistOrBeCreated(String name) {
User user = //...
return user;
}
@Given("$user is authenticated")
public void shouldBeLoggedIn() {
// ...
}
@When("$user changes his password to $pwd")
public void shouldChangePassword(User user, String pwd) {
// ...
}
@Then("$user password equals to $pwd")
public void shouldHaveThisPassword(User user, String pwd) {
assertEquals(user.getPassword(), pwd);
}
}
Run Code Online (Sandbox Code Playgroud)
就是这样.我不想再有任何文件,还有单元测试.我想要一些BDD框架来查找我的故事文件,解析我的所有Java文件,然后逐个运行它们.有可能实现吗?
PS.这里重要的是在我的其他故事中可能重用 Java方法.例如,这是故事2:
Given user is named "Michael Doe" <-- reuse
When user adds $100.00 to his account
Then user account balance is $100.00
Run Code Online (Sandbox Code Playgroud)
机器人框架可能是有意义的.您可以在这里阅读用户指南中的详细信息:http: //robotframework.googlecode.com/svn/tags/robotframework-2.5.4/doc/userguide/RobotFrameworkUserGuide.html#behavior-driven-style
Robotframework是用python编写的,新的关键字可以用python或jython实现.
还有一篇关于RF用于ATDD的论文:http://www.niksula.cs.hut.fi/~jprantan/thesis/thesis_juha_rantanen.pdf