我有一个同事,他为随机数据填充字段的对象编写单元测试。他的理由是,它提供了更广泛的测试范围,因为它将测试许多不同的值,而正常的测试只使用一个静态值。
我给了他很多反对的理由,主要是:
- 随机值意味着测试不是真正可重复的(这也意味着如果测试可以随机失败,它可以在构建服务器上这样做,并中断构建)
- 如果它是一个随机值,测试失败,我们需要 a)修复对象和 b)强迫自己每次测试该值,所以我们知道它的工作,但因为它是随机的,我们不知道值是什么
另一位同事补充道:
- 如果我正在测试一个异常,随机值将不能确保测试最终处于预期的状态
- 随机数据用于刷新系统和负载测试,而不是用于单元测试
还有谁能给我更多的理由让他停止这么做吗?
(或者,这是一种可以接受的编写单元测试的方法,而我和我的其他同事都错了?)