我有一个要进行单元测试的伪随机数生成器 (PRNG) 类。有两种方法:
- 编写一个需要大量样本的测试用例,并测试它们是否分布正确。这种方法可能会导致测试用例的执行时间相当长;
- “手动”计算一小部分样本并验证 PRNG 算法是否重现它。这种方法可能会导致在不被注意的情况下生成非随机序列;
我想说第一种方法不是真正的单元测试,因为它不执行生成器的白盒测试,但另一方面它正确地测试了类的责任。第二种方法更像是一个真正的单元测试,专注于算法,但它并没有提供太多的证据来证明类是否履行了它的职责。
你更喜欢哪种方法,为什么?