fc.assert
複数回実行する
エラーになった場合に単にそのケースを提示するのではなく、
失敗の原因となる最小のケースを特定しようとしてくれる
第2引数に{verbose: 2}とか指定すると結果が詳細になる
デフォルトはverbose: 0
failしたケースを再度実行したい場合は、fc.assertの第2引数に指定すれば良い
こういうやつ{ seed: -1819918769, path: "0:...:3", endOnFailure: true }をfc.assertの第2引数に指定する
sizeとかdepthFactorについて
examples: []で常に実行するテストケースを追加できる
code:ts
fc.assert(fc.property(fc.nat(), myCheckFunction), {
examples: [
0, // first example I want to test ],
});
例えば以下のようなエラーが出たmrsekut.icon
code:error
Error: Property failed after 1 tests
{ seed: -912787382, path: "0:1:1:1", endOnFailure: true }
Counterexample: ",""
Shrunk 3 time(s)
Got error: Property failed by returning false
Hint: Enable verbose mode in order to have the list of all failing values encountered during the run
GPT-4.icon
Error: Property failed after 1 tests
テストプロパティが1回の実行後に失敗したことを示しています。
{ seed: -912787382, path: "0:1:1:1", endOnFailure: true }
seed: テストのランダムな実行を制御するためのシード値。この値を使用することで、テストの再現性を保証できます。
seedがあるので再現できるmrsekut.icon
path: 失敗したテストケースへのパス。これは、シンクリンク(縮小)の過程でのステップを示しています。
Counterexample: ",""
この部分は、テストが失敗した際の反例を示しています。具体的には、",""という入力値でテストが失敗したことを示しています。
Shrunk 3 time(s)
テストが失敗した原因を特定するために、fast-checkはシンクリンク(縮小)というプロセスを使用します。このメッセージは、そのプロセスが3回実行されたことを示しています。
Got error: Property failed by returning false
テストプロパティがfalseを返したため、テストが失敗したことを示しています。
Hint: Enable verbose mode in order to have the list of all failing values encountered during the run
このヒントは、テストの実行中に遭遇したすべての失敗値のリストを取得するために、詳細モード(verbose mode)を有効にすることを提案しています。