TDD(Test Driven Development)—测试驱动开发模式

来源:互联网 发布:淘宝刷客要坐牢吗 编辑:程序博客网 时间:2024/05/18 22:45

 相互独立的测试
(1) 测试都是不依赖顺序的。如果想从这些测试中挑选一部分来测试来运行是可行的。
(2) 把问题分解成一些彼此正交的小问题。使每个测试环境更加简单和快捷。

测试优先
应该什么时候编写测试?在要编写代码之前,先编写这个代码的测试。
测试在前可以减少工作压力,如果测试写在后面,当我们知道自己的测试不够时,会增加我们的工作压力,越是不想测试。

断言优先
断言技术优先测试。什么事正确的结果,怎么去检查结果的正确性。

测试数据

在测试优先中使用什么样的数据。编排数据必须取不同的值,且必须有意义。如果1和2之间没有概念上的差别,那就使用1。
测试数据千万不要用同一个常量来表达多种意思。
尽量使用真实的数据。

显示数据

如何表达数据的意图?让测试自身包含预期的和实际的结果。并且努力使它们之间的关系明显化。
不要在预期结果中使用魔数,尽量使用符号常量或者表达式。
比如测试一个加发方法
assertEquals(2+3,result); 不要写成assertEquals(5,result);

子测试

当测试用例太大时,需要分解,对一个问题做两个不完整测试,同时做子测试。这样可能会犯错误,两个子测试和原来的测试不一样。
需要做出反应。

模拟对象(Mock Object)
如果测试依赖昂贵并且复杂的资源对象,,我们可以创建这些资源的模拟版本。
模拟对象增加可靠性和性能和可读性。如果模拟对象不可靠怎么办?可以通过对实际对象适用的一系列测试来测试模拟对象。

原创粉丝点击