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

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

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: 栈的逻辑至此,通过允许传递多个行为方法,追求代码质量: 亲身体验行为驱动开发(9),我已经实现了 push() 和 pop() 方法,但是我还没有处理栈的实际内容,但是 “应该保留栈顶的项目”,相应地,这是与多个 push() 和 pop() 相关联的逻辑,间或出现一个

栈的逻辑

至此,通过允许传递多个行为方法,我已经实现了 push() 和 pop() 方法。但是我还没有处理栈的实际内容,这是与多个 push() 和 pop() 相关联的逻辑,间或出现一个 peek()。

首先,我将通过 shouldPopSecondPushedValueFirst() 行为确保栈的基本算法(先进先出)无误。


清单 19. 确保典型的栈逻辑
public void shouldPopSecondPushedValueFirst() throws Exception{ 
 stStack.push("test 1"); 
 stStack.push("test 2"); 
 Ensure.that(stStack.pop(), m.is("test 2")); 
} 

清单 19 中的代码可以按计划运行,所以我将实现另一个行为方法(在清单 20 中),以确保两次使用 pop() 都能表现出正确的行为。


清单 20. 更深入地查看栈行为
public void shouldPopValuesInReverseOrder() throws Exception{ 
 stStack.push("test 1"); 
 stStack.push("test 2"); 
 Ensure.that(stStack.pop(), m.is("test 2")); 
 Ensure.that(stStack.pop(), m.is("test 1")); 
} 

接下来,我要确保 peek() 能按预期运行。正如 Linda 所说,peek() 遵从和 pop() 相同的规则,但是 “应该保留栈顶的项目”。相应地,我在清单 21 中实现了 shouldLeaveValueOnStackAfterPeep() 方法的行为。


清单 21. 确保 peek 保留栈顶的项目
public void shouldLeaveValueOnStackAfterPeep() throws Exception{ 
 stStack.push("test 1"); 
 stStack.push("test 2"); 
 Ensure.that(stStack.peek(), m.is("test 2")); 
 Ensure.that(stStack.pop(), m.is("test 2")); 
} 

上一页  4 5 6 7 8 9 10  下一页

Tags:追求 代码 质量

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