問題タブ [property-based-testing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
86 参照

f# - プロパティ ベースのテストで前提条件が無視されるのはなぜですか?

プロパティ ベースのテストで前提条件が無視されるのはなぜですか?

私のテストの前提条件は次のとおりです。

したがって、私の実際のテストは次のとおりです。

ただし、私のテストは引き続き失敗します。

結果メッセージ: System.Exception : Falsifiable、3 回のテスト後 (1 回の縮小) (StdGen (985619705,296133555)): Original: 1 -1 Shrunk: 0 -1

ドメイン:

[アップデート]

私も試しました:

ただし、次のエラーが表示されます。

型の不一致。プロパティを期待 -> 'a が int を指定 -> Map<(int * int),Cell> タイプ 'Property' がタイプ 'int' と一致しません

0 投票する
1 に答える
226 参照

f# - プロパティ ベースのテストを実装する場合、事前条件式に対して入力ジェネレーターを使用する必要があるのはいつですか?

プロパティ ベースのテストを実装する場合、事前条件式に対して入力ジェネレーターを使用する必要があるのはいつですか?

特定のオプションを選択する際にパフォーマンスに関する考慮事項はありますか?

内部的には、一方のメソッドは必然的に他方を使用しますか?

前提条件式は、入力ジェネレーターと比較して実行に時間がかかると思います。誰かがこれをテストしましたか?

なぜ両方が必要なのですか?

0 投票する
1 に答える
481 参照

f# - 同じタイプのカスタム ジェネレーターからデフォルトの FsCheck ジェネレーターを呼び出す

FsCheck がいくつかの型のカスタマイズされたインスタンスを生成するように、いくつかのカスタム ジェネレーターを使用して型を定義しました。しかし、複雑なタイプの 1 つについては、最初にデフォルトの FsCheck 生成を使用してから、結果を調整したいと考えています。(簡略化された)コードは次のとおりです。

問題は、SecondCustomType() 静的メソッドが Arb.generate を呼び出すと、即座に SecondCustomType() が呼び出され、無限の再帰が発生することです。Arb.generate はカスタム ジェネレーターを尊重する必要があることを理解しています。これが静的な SecondCustomType() を呼び出す理由ですが、SecondCustomType のデフォルトの (カスタマイズされていない) Arb.generate 実装を呼び出す必要があります。私のカスタム ジェネレーターは FirstCustomType のカスタム ジェネレーターを使用するため、別の型から実装を呼び出すことはできません。これは一種の悪循環であり、明確な解決策がまだ見つかっていません (回避策のみ)。

0 投票する
1 に答える
74 参照

f# - プロパティ ベースのテスト コードを解釈するにはどうすればよいですか?

プロパティ ベースのテスト コードを解釈するにはどうすればよいですか?

次のスニペットの指示を翻訳するのに苦労しています。

具体的には、後方パイプライン演算子 (つまり、"<|") に苦労しています。

テストは次のとおりです。

このコードがどのように機能するかを順を追って説明してもらえますか?

これは前方パイプ演算子 (つまり、"|>") を使用して書き換えることができますか?

0 投票する
1 に答える
70 参照

f# - プロパティベースのテストを実行するときに、テスト入力の条件を確立するにはどうすればよいですか?

プロパティベースのテストを実行するときに、テスト入力の条件を確立するにはどうすればよいですか?

たとえば、次のコードは、int が必要なときに bool を生成します。

関数は次のとおりです。

適格なintを取得するには、次のようなものが必要です。

ただし、これにはオプションがありません。

助言がありますか?

0 投票する
1 に答える
205 参照

scala - scalacheck で有効な状態遷移をテストする

このクラスがあるとします:

canTransitionToscalachecks コマンドを使用して (簡単にするためにここには含まれていません)ロジックをテストしたいのですが、開始方法に少し問題があります。何か案は?

0 投票する
0 に答える
191 参照

scala - specs2 + scalacheck を使用して型クラスを検証する (単純な Arbitrary[...] の例)

specs2 と scalacheck を連携させるのに苦労しています。Credit1 から 59 の範囲内の単一の整数を取る単純なクラス があります (この範囲外のものは例外をスローする必要があります)。

2 つのテストを定義したいと思いCredit(1)ますCredit(59)。また、Creditその範囲外のものは検証に失敗する必要があります (実際には、構築時に例外をスローする必要があります)。Arbitrary[Credit]次のように、ジェネレーターを定義するのが正しいアプローチのようです。

そして、私も定義しarbitraryBadCreditGeneratorます。

問題は、任意の暗黙的な使用でありprop、2 つの異なる任意のインスタンスで使用するための構文を理解しようとしています。

私がこれまでに持っているものは次のとおりです。

Credit検証に Accord を使用しているため、無効な範囲でを作成しようとすると失敗します。

badCreditGenerator私の使用法がすべて間違っているため、これはコンパイルされません。私はそれをいじり、解決策を考え出そうとしています。Credit理想的には、「良い」インスタンスを生成するジェネレータと、悪いインスタンスを生成しようとするジェネレータの 2 つの任意のジェネレータが必要です。

多分もっと良い方法がありますか?

どんな助けでも感謝します。ありがとうございました!