相互独立的测试
(1) 测试都是不依赖顺序的。如果想从这些测试中挑选一部分来测试来运行是可行的。
(2) 把问题分解成一些彼此正交的小问题。使每个测试环境更加简单和快捷。
测试优先
应该什么时候编写测试?在要编写代码之前,先编写这个代码的测试。
测试在前可以减少工作压力,如果测试写在后面,当我们知道自己的测试不够时,会增加我们的工作压力,越是不想测试。
断言优先
断言技术优先测试。什么事正确的结果,怎么去检查结果的正确性。
测试数据
在测试优先中使用什么样的数据。编排数据必须取不同的值,且必须有意义。如果1和2之间没有概念上的差别,那就使用1。
测试数据千万不要用同一个常量来表达多种意思。
尽量使用真实的数据。
显示数据
如何表达数据的意图?让测试自身包含预期的和实际的结果。并且努力使它们之间的关系明显化。
不要在预期结果中使用魔数,尽量使用符号常量或者表达式。
比如测试一个加发方法
assertEquals(2+3,result); 不要写成assertEquals(5,result);
子测试
当测试用例太大时,需要分解,对一个问题做两个不完整测试,同时做子测试。这样可能会犯错误,两个子测试和原来的测试不一样。
需要做出反应。
模拟对象(Mock Object) 如果测试依赖昂贵并且复杂的资源对象,,我们可以创建这些资源的模拟版本。 模拟对象增加可靠性和性能和可读性。如果模拟对象不可靠怎么办?可以通过对实际对象适用的一系列测试来测试模拟对象。
原文链接:https://www.f2er.com/javaschema/287078.html