WEB开发网
开发学院软件开发Java 演化架构与紧急设计: 测试驱动设计,第 1 部分 阅读

演化架构与紧急设计: 测试驱动设计,第 1 部分

 2009-11-05 00:00:00 来源:WEB开发网   
核心提示: 清单 5. 测试 “数字是不是因子?”publicclassClassifier1Test{@Testpublicvoidis_1_a_factor_of_10(){assertTrue(Classifier1.isFactor(1,10));}}这项简单测试琐碎得有些愚


清单 5. 测试 “数字是不是因子?”
public class Classifier1Test { 
 
  @Test public void is_1_a_factor_of_10() { 
    assertTrue(Classifier1.isFactor(1, 10)); 
  } 
} 

这项简单测试琐碎得有些愚蠢,这就是我需要的。要编译此测试,您必须有名为 Classifier1 的类,并且它有 isFactor() 方法。因此我必须先创建类的骨架结构,然后才可以得到表示测试结果不正确的红条。编写极度琐碎的单元测试可以先把结构准备就绪,然后才需要开始通过所有有意义的方法考虑问题域。我希望一次只考虑一件事,而且这使得我可以处理骨架结构,而无需担心正在解决的问题的细微差别。一旦我可以编译这段代码并且得到表示测试失败的红条,我就准备好编写代码,如清单 6 所示:


清单 6. 确定因子的方法
public class Classifier1 { 
  public static boolean isFactor(int factor, int number) { 
    return number % factor == 0; 
  } 
} 

好的,这段代码很好而且很简单,并且它可以完成工作。现在我可以转到下一项最简单的任务:获得数字的因子列表。测试显示在清单 7 中:


清单 7. 下一个测试:数字的因子
@Test public void factors_for() { 
  int[] expected = new int[] {1}; 
  assertThat(Classifier1.factorsFor(1), is(expected)); 
} 

清单 7 显示了我为获得因子编写的最简单测试,因此现在我可以编写使此测试通过的最简单代码(并在以后将其重构以使其更复杂)。下一个方法显示在清单 8 中:

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

Tags:演化 架构 紧急

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