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

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

 2009-11-05 00:00:00 来源:WEB开发网   
核心提示: 我需要确定某个数字是不是完全数,还没有完成的两个任务是把因子加起来和判断完全数,演化架构与紧急设计: 测试驱动设计,第 2 部分(5),这两个任务很简单;最后两个测试见清单 5: 清单 5. 完全数的最后两个测试@Testpublicvoidsum(){Classifier5c=newClass

我需要确定某个数字是不是完全数。

还没有完成的两个任务是把因子加起来和判断完全数。这两个任务很简单;最后两个测试见清单 5:


清单 5. 完全数的最后两个测试
@Test public void sum() { 
  Classifier5 c = new Classifier5(20); 
  c.calculateFactors(); 
  int expected = 1 + 2 + 4 + 5 + 10 + 20; 
  assertThat(c.sumOfFactors(), is(expected)); 
} 
 
@Test public void perfection() { 
  int[] perfectNumbers = 
    new int[] {6, 28, 496, 8128, 33550336}; 
  for (int number : perfectNumbers) 
    assertTrue(classifierFor(number).isPerfect()); 
}  

在 Wikipedia 上查找到前几个完全数之后,我可以编写一个测试,它检查实际上是否可以找到完全数。但是,这还没有完。肯定测试只是工作的一半儿。还需要编写另一个测试,确保不会意外地把非完全数分类为完全数。因此,我编写了清单 6 所示的否定测试:


清单 6. 确保完全数分类正确的否定测试
@Test public void test_a_bunch_of_numbers() { 
  Set<Integer> expected = new HashSet<Integer>( 
      Arrays.asList(PERFECT_NUMS)); 
  for (int i = 2; i < 33550340; i++) { 
    if (expected.contains(i)) 
      assertTrue(classifierFor(i).isPerfect()); 
    else 
      assertFalse(classifierFor(i).isPerfect()); 
  } 
} 

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

Tags:演化 架构 紧急

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接