@songying
2018-06-26T13:00:32.000000Z
字数 611
阅读 1136
单元测试
6个值得测试的部位
- Right: 结果是否正确
- B:是否所有的边界条件都正确
- I: 能查一下反向关联吗
- C:能用其他手段交叉检查一下结果吗
- E: 你是否可以强制错误条件发生?
- P: 是否满足性能要求
必须回答问题: 如果代码能够运行正确, 我怎么才知道它是正确的呢
一个原则: 对于验证被测方法是正确的这件事情,如果某些做法能够使它变得更加容易,那么就采纳它把。
这是最重要的工作之一
一些需要考虑的条件:
- 完全伪造或不一致的输入数据
- 格式错误的数据
- 空值或不完整的值
- 一些与意料中的合理值相去甚远的数值
- 如果要求是一个不允许出现重复数值的list, 但是传入的是一个存在重复数值的list
- 如果要求的是一个有序的list, 但是传入的是一个无序的list
- 事情到达的次序是错误的,或者碰巧和预期的次序不一致。
- Conformance: 值是否与预期的一志
- Ordering: 值是否如应该的那样,是有序或无序的
- Range: 值是否位于合理的最小值和最大值之内
- Reference: 代码是否引用了一些不在代码本身控制范围之内的外部资源。
- Existence: 值是否存在(非null, 非0, 在一个集合中等)
- Cardinatity: 是否恰好有足够的值
- Time: 所有事情的发生是否有序,是否在正确的时刻,是否恰好及时