フィールドにランダムデータを入力するオブジェクトの単体テストを作成する同僚がいます。彼の理由は、通常のテストでは単一の静的な値しか使用しないのに対し、多くの異なる値をテストするため、テストの範囲が広がるためです。
私は彼にこれに対していくつかの異なる理由を与えました、主な理由は次のとおりです:
- ランダムな値は、テストが本当に再現可能ではないことを意味します(つまり、テストがランダムに失敗する可能性がある場合は、ビルドサーバーで失敗し、ビルドを中断する可能性があります)
- ランダムな値でテストが失敗した場合は、a)オブジェクトを修正し、b)毎回その値をテストするように強制する必要があります。これにより、動作することがわかりますが、ランダムであるため、値が何であるかはわかりません。
別の同僚が追加しました:
- 例外をテストしている場合、ランダムな値では、テストが期待どおりの状態になることは保証されません。
- ランダムデータは、単体テストではなく、システムのフラッシュと負荷テストに使用されます
他の誰かが私が彼にこれをやめさせるために彼に与えることができる追加の理由を追加できますか?
(または、これは単体テストを作成するための許容可能な方法であり、私と他の同僚は間違っていますか?)