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

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

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: JBehave 还引入了一个 Block 类型,它是通过用所需的行为覆盖 run() 方法来实现的,追求代码质量: 亲身体验行为驱动开发(4),在内部,JBehave 确保期望的异常类型不被抛出(并因此被捕捉),清单 5. 在栈类中增加指定的行为publicvoidpush(Evalue){if

JBehave 还引入了一个 Block 类型,它是通过用所需的行为覆盖 run() 方法来实现的。在内部,JBehave 确保期望的异常类型不被抛出(并因此被捕捉),而是生成一个故障状态。您可能还记得,在我前面关于 用 Google Web Toolkit 对 Ajax 进行单元测试 的文章中,也出现了类似的覆盖便利类的模式。在那种情况下,覆盖是通过 GWT 的 Timer 类实现的。

如果现在运行清单 3 中的行为,应该看到出现错误。按照目前编写的代码,push() 方法不执行任何操作。所以不可能生成异常,从清单 4 中的输出可以看到这一点。


清单 4. 没有发生期望的行为
1) StackBehavior should throw exception upon null push: 
VerificationException: Expected: 
object not null 
but got: 
null: 

清单 4 中的句子 “StackBehavior should throw exception upon null push” 模拟行为的名称(shouldThrowExceptionUponNullPush()),并加上类的名称。 实际上,JBehave 是在报告当它运行所需的行为时,没有获得任何反应。当然,我的下一步是要使上述行为成功运行,为此我检查 null,如清单 5 所示。


清单 5. 在栈类中增加指定的行为
public void push(E value) { 
 if(value == null){ 
  throw new RuntimeException("Can't push null"); 
 } 
} 

当我重新运行行为时,一切都运行得很好,如清单 6 所示。


清单 6. 成功!
Time: 0.021s 
 
Total: 1. Success! 

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

Tags:追求 代码 质量

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