0 から 6 までの 3 つのランダムな要素配列を返す関数があります。すべての要素が同じ値を持つことはできません (同じ値を持つ 2 つの要素を持つことはできますが、3 つにすることはできません)。以下はサンプルコードです。
public function getRandom() {
$array = array(0, 0, 0);
do {
$array[0] = rand(0, 6);
$array[1] = rand(0, 6);
$array[2] = rand(0, 6);
} while(($array[0] == $array[1]) && ($array[0] == $array[2]));
return $array;
}
私はユニットテストに少し慣れていません。これをテストすることを考えることができると思うのは
- この関数を 1,000 回テストし、0 ~ 6 のデータが返されるかどうかを確認します。3 つの要素すべてが同じ値を持つことはできません。
- 関数 rand() をオーバーライドして、必要なものを返す方法を見つけます。
- 3 つの要素がすべて同じ値を持つ戻り値、次に同じ値を持つ 2 つの要素を持つ戻り値。次に、すべての要素が異なる値を持つ値を返します。
アプローチがあるかどうか、またはこの場合の私のアプローチのどれが優れているか疑問に思います。