- Right. 结果是否正确.
- 首先,我们需要知道什么是正确的结果.
- 对于有大量数据的测试,考虑使用单独的外部文件来存储测试数据.
- Boundary. 主要是CORRECT 原则.
- Conformance. 一致性.
- Ordering. 顺序性.
- 有序或无序的.
- 一个很大的数据集合中某个数据的位置.
- Range. 值是否位于合理的最大最小值之间.
- Reference. 代码是否引用了不在代码本身控制范围之外的外部资源.
- Existence. 值是否存在.
- Counting. 基数性.
- 是否恰好有足够的值.
- Time. 时间性.
- 事情的发生是否有序,是否在正确的时间.
- InReverse. 相反性.
- 当原方法插入一条记录到DB时,可反向用查询语句来看结果.
- 有些Bug可能原和反方向方法中都出现,所以应使用不同的原理.
- Cross.
- 通常计算会有多个算法,考虑性能或其他因素选择了一种,可用其它算法来验证该算法的正确性.
- Error.
- 是否能够强制错误发生
- Performance.
- 是否能够满足性能的要求.
- A-trip原则.
- Automatic. 测试所需的任何条件(网络,DB),都应该成为测试自动化的一部分,如Mock对象.
-
测试必须能够自己决定是否正确的通过
.
-
- Thorough.一个极端是所有代码行,所有分支,所有异常都测试.
-
可行的是仅测试最可能的情况,如边界测试等
.
-
- Repeatable. 测试应(使用Mock) 来�隔离其它测试和周围的环境.
-
能够多次执行,并且得到相同的结果
.
-
- Independent. 一个测试应只专注于一个函数,或一组函数.
-
每个方法和类都有自己的setup和tear down. 来保证全新的开始
.
-
- Professional.
实现代码的规则,也适合于测试代码
.
- Automatic. 测试所需的任何条件(网络,DB),都应该成为测试自动化的一部分,如Mock对象.
单元测试的原则
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
- //我所经历的大数据平台发展史(三):互联网时代 • 上篇http://www.infoq.com/cn/arti...