发布于 2013-04-17 09:56:38
行为驱动开发只是一种无需任何工具就可以使用的技术。您只需编写BDD样式的测试-例如,用should启动测试方法,并使用该方法引入一些单独的特性。When和then部分可以用注释代替。
@Test
public void should_do_something() {
// given
Something something = getSomething();
// when
something.doSomething();
// then
assertSomething();
// when
something.doSomethingElse();
// then
assertSomethingElse();
}我对上述框架的看法:
我还认为,Java最成功的BDD框架是那些没有用Java编写的框架,因为Java语言对于DSL (领域特定语言)的创建没有Groovy或Scala那样的灵活性。
发布于 2014-08-09 17:48:36
作为JGiven的作者,我不得不不同意sody的观点,即Java没有足够的灵活性来创建DSL。在JGiven中,BDD测试如下:
@Test
public void users_can_login {
given()
.a_registered_user()
.and().the_login_page_is_shown();
when()
.the_user_enters_correct_credentials()
.and().the_login_button_is_pressed();
then()
.the_welcome_page_is_shown();
}JGiven与JUnit或TestNg一起使用,您可以使用普通Java编写测试。
发布于 2014-01-28 21:34:55
除非您的产品所有者/qa/客户需要能够读取测试,否则使用斯波克。它是非常简单的工具,但提高了测试的可读性。由于它的强大特性,您不需要Mockito、Hamcrest或AssertJ。而且它有极好的参数化测试。实际上,它只是一个更好的JUnit --一个用于自动执行简单任务的通用工具,无论是单元测试、集成测试还是验收测试。
害怕Groovy?为什么?它非常类似于java。你学得越多,你的代码就越有表现力和更短。您的测试将更短、更易读。Groovy是通向JVM更好方面的网关药物。
不喜欢动态语言?这是测试,在每次提交之后,测试由CI服务器运行,对吗?如果您的代码中断,您将在几分钟后知道它。没有CI服务器或没有定期运行测试?然后,不要费心地选择一个测试框架,去修复您的过程。失败的测试是无用的,如果你不定期运行这些测试,它们很快就会崩溃。
如果需要,可以使用JBehave/Cucumber;否则,请使用Spock。
https://stackoverflow.com/questions/16036120
复制相似问题