当前位置:  开发笔记 > 编程语言 > 正文

哪种BDD框架允许采用简单的方法来编写"故事"?

如何解决《哪种BDD框架允许采用简单的方法来编写"故事"?》经验,为你挑选了3个好方法。

我试图以一种非常简单的方式使用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"

接下来,我创建一个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);
  }
}

就是这样.我不想再有任何文件,还有单元测试.我想要一些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

haylem.. 5

你想看看:

easyb,

或JBehave蚂蚁的入门指南,

也许是Specatular及其入门指南.

此外,这篇关于Java和Groovy中的BDD的演示可能会引起关注.



1> haylem..:

你想看看:

easyb,

或JBehave蚂蚁的入门指南,

也许是Specatular及其入门指南.

此外,这篇关于Java和Groovy中的BDD的演示可能会引起关注.



2> Nick..:

我们使用Cucumber,这是一个Ruby框架,但通过将JRuby捆绑到您的项目中,您可以轻松访问Java对象.它确实意味着你在Ruby中编写你的步骤定义,但它也最小化你写的Java的数量:)

Cucumber中的故事格式正如您在示例中所描述的那样,故事情节的重复使用是微不足道的.



3> Mark Irvine..:

机器人框架可能是有意义的.您可以在这里阅读用户指南中的详细信息: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

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有