フラクタルとランダム地形生成に関するコードを書いています。具体的には、現在、Diamond-Square アルゴリズムを使用しています。ご存じない方のために説明すると、基本的には 4 つの値の平均を取得し、すべてのステップで乱数を追加します。結果をテストするにはどうすればよいですか?既知のシードを使用して、平均とランダム値を手動で計算する必要がありますか? 代わりに、乱数を使用してコードで結果を計算する必要がありますか? それとも別の方法がありますか?また、逆のプロセス(別名TDD、コードの前にテストを書く)についての考えも大歓迎です)。
2 に答える
8
モックフレームワークを使用して、乱数生成をモックすることができます。このようにして、結果からランダム性を取り除き、事前定義されたテストケースの静的セットを使用してコードをテストできるようになります。
すべての場合において、乱数生成をテストしているのではなく、計算を行っています。また、障害が発生した場合は、障害を再現するために使用される乱数を実際に知る必要があります。
于 2012-10-13T22:56:50.100 に答える
1
いくつかの反復のシードと数値 (PRNG の値を実際に使用する前にその PRNG を呼び出す回数) を選択し、これらの同じデータ (シードと反復) をメイン コードと単体テストで使用します。これらのデータは、メイン コードと単体テストの両方からアクセスできる構成ファイルにある可能性があります。
于 2012-10-13T22:09:12.677 に答える