問題タブ [fscheck]
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.
f# - プロパティ ベースのテストを実装する場合、事前条件式に対して入力ジェネレーターを使用する必要があるのはいつですか?
プロパティ ベースのテストを実装する場合、事前条件式に対して入力ジェネレーターを使用する必要があるのはいつですか?
特定のオプションを選択する際にパフォーマンスに関する考慮事項はありますか?
内部的には、一方のメソッドは必然的に他方を使用しますか?
前提条件式は、入力ジェネレーターと比較して実行に時間がかかると思います。誰かがこれをテストしましたか?
なぜ両方が必要なのですか?
f# - 同じタイプのカスタム ジェネレーターからデフォルトの FsCheck ジェネレーターを呼び出す
FsCheck がいくつかの型のカスタマイズされたインスタンスを生成するように、いくつかのカスタム ジェネレーターを使用して型を定義しました。しかし、複雑なタイプの 1 つについては、最初にデフォルトの FsCheck 生成を使用してから、結果を調整したいと考えています。(簡略化された)コードは次のとおりです。
問題は、SecondCustomType() 静的メソッドが Arb.generate を呼び出すと、即座に SecondCustomType() が呼び出され、無限の再帰が発生することです。Arb.generate はカスタム ジェネレーターを尊重する必要があることを理解しています。これが静的な SecondCustomType() を呼び出す理由ですが、SecondCustomType のデフォルトの (カスタマイズされていない) Arb.generate 実装を呼び出す必要があります。私のカスタム ジェネレーターは FirstCustomType のカスタム ジェネレーターを使用するため、別の型から実装を呼び出すことはできません。これは一種の悪循環であり、明確な解決策がまだ見つかっていません (回避策のみ)。
f# - プロパティベースのテストを実行するときに、テスト入力の条件を確立するにはどうすればよいですか?
プロパティベースのテストを実行するときに、テスト入力の条件を確立するにはどうすればよいですか?
たとえば、次のコードは、int が必要なときに bool を生成します。
関数は次のとおりです。
適格なintを取得するには、次のようなものが必要です。
ただし、これにはオプションがありません。
助言がありますか?
f# - NUnit と FsCheck の最新バージョンを F# で使用できないのはなぜですか?
NUnit、FsCheck、F# の最新バージョンを使用したいと考えています。ただし、パッケージの最新バージョンを指定すると、単体テストが検出されません。
ただし、プロパティ ベースのテスト (つまり、FsCheck) が検出されます。
私のパッケージは次のとおりです。
私の app.config は次のとおりです。
c# - c# FsCheck はラムダ式を変換できません
C# FsCheck ジェネレーターを取得して、ランダムな文字列で初期化される一連のコマンドを生成しようとしています。私は次の解決策を思いつきました:
ただし、VS はこのコードをビルドできません。
このエラー メッセージの解決策を検索しましたが、解決策が見つかりませんでした。System.LinqとSystem.Data.Entityを使用しています。この問題を解決するための提案は大歓迎です。
f# - FsCheck を使用して複数の引数の生成を実装するにはどうすればよいですか?
FsCheck を使用して複数の引数の生成を実装するにはどうすればよいですか?
複数の引数の生成をサポートするために、次を実装しました。
次に、これらの引数を使用して、特定のチェッカーの移動オプションの生成を担当する関数の動作をテストしました。
生成された複数の引数の型を管理する場合、Prop.forAll 式のネストは適切な手法ですか?
テスト対象の関数に複数の引数を生成する別の方法はありますか?
関数全体は次のとおりです。
アップデート
マークの答えから導き出された私の質問に対する解決策は次のとおりです。