WEB开发网
开发学院软件开发Java 追求代码质量: 亲身体验行为驱动开发 阅读

追求代码质量: 亲身体验行为驱动开发

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: 在这段对话中,有没有注意到什么特别的地方呢(除了 Frank 不是计算机科学专业的)?这里从头到尾没有用到 “测试” 这个词,追求代码质量: 亲身体验行为驱动开发(2),但是,“应该” 这个词却非常自然地随处闪现,不需要扩展任何特定的基类,并且所有

在这段对话中,有没有注意到什么特别的地方呢(除了 Frank 不是计算机科学专业的)?这里从头到尾没有用到 “测试” 这个词。但是,“应该” 这个词却非常自然地随处闪现。

怎么做才自然?

我应该使用哪种框架?

由于注释(annotation)的缘故,可以使用 JUnit 和 TestNG 来实践 BDD。我发现使用 JBehave 之类的 BDD 框架更加有趣,因为它提供了定义行为类的特性,例如异常框架 便于实现更具文学风格的编程。

BDD 并不是什么新生事物,更不具备什么革命性的突破。它只是 TDD 的一个分支,其中 “测试” 这个词换成了 “应该”。除了语义,很多人还发现,与测试 概念相比,应该 这个概念是一种更自然的开发驱动因素。考虑行为(应该)会自然而然地促使您先编写规范类,而后者可以成为一个非常有效的实现驱动因素。

以 Frank 和 Linda 的对话为基础,让我们看看 BDD 如何以 TDD 希望推广的方式驱动开发。

JBehave

JBehave 是用于 Java™ 平台的一个 BDD 框架,源于 xUnit 范例。正如您所料,JBehave 强调应该 这个词,而不是测试。和 JUnit 一样,您可以在自己喜欢的 IDE 中,或者通过偏爱的构建平台(例如 Ant)运行 JBehave 类。

JBehave 允许以 JUnit 的方式创建行为类;但是,在 JBehave 中,不需要扩展任何特定的基类,并且所有行为方法都需要以 should 而不是 test 开头,如清单 1 所示。


清单 1. 用于栈的一个简单的行为类
public class StackBehavior { 
 public void shouldThrowExceptionUponNullPush() throws Exception{} 
 public void shouldThrowExceptionUponPopWithoutPush() throws Exception{} 
 public void shouldPopPushedValue() throws Exception{} 
 public void shouldPopSecondPushedValueFirst() throws Exception{} 
 public void shouldLeaveValueOnStackAfterPeep() throws Exception{} 
} 

上一页  1 2 3 4 5 6 7  下一页

Tags:追求 代码 质量

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接