测试驱动开发简称 TDD,英文全称 Test Driven Development
- 结对编程:一个写,一个看;另一个写,一个看
编写一个函数,返回小于给定 max 值的所有素数组成的数组。
public static int[] getPrimes(int max) |
1、思考
任务分解
- 边界条件:getPrimes(2)、getPrimes(0)、getPrimes(-1)
- 正常输入:getPrimes(9)、getPrimes(17)、getPrimes(30)
2、运行失败
写一个测试用例,运行失败(Tests failed)
public class PrimeUtilTest { |
public class PrimeUtil { |
3、测试通过
just enough 代码 1,测试通过(Tests pass)
public class PrimeUtil { |
just enough 代码 2,测试通过(Tests pass)
public class PrimeUtilTest { |
public class PrimeUtil { |
- 判断是否为质数:当一个数 i 除以所有
大于 2,小于 i / 2 + 1
都不等于 0,那他就是质数。 - 所有:遍历
大于 2,小于 max
的所有数,判断是否为质数。 - 放入到数组中:通过判断此时的
j 是否已经是最大值,即 j = i / 2 + 1
。4、重构
重构代码(Refactor)
public class PrimeUtil { |
常用断言
- Assert.assertEquals(expected, actual);
- Assert.assertTrue(condition);
- Assert.assertFalse(condition);
- Assert.assertNull(condition);
- Assert.assertNotNull(object);
- Assert.assertArrayEquals(expecteds, actuals);
- Assert.fail();
总结
1、先写测试用例;2、根据测试用例去实现代码;3、重构代码