問題タブ [fsunit]
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# - 単体テスト: '[] |> should equal List.empty' が期待どおりに動作しない
失敗したテストを含む次のコードがあります。
テストは次の一致エラーで失敗します
FsUnit.Xunit+MatchException : タイプ 'FsUnit.Xunit+MatchException' の例外がスローされました。予想: [] に等しい
実際: [] だった
f# - FsUnit のアサートで識別された共用体ケースの値を無視するにはどうすればよいですか?
FsUnit のアサートで識別された共用体ケースの値を無視するにはどうすればよいですか?
たとえば、次のとおりです。
私のテストでは、これを行いたいです:
私はこれをしてもかまいません:
しかし、私はこれを行うことを余儀なくされています:
上記の表現をどのように明示する必要があるかに注意してください。
したがって、それが拒否されたかどうかを知りたいだけです。詳細は気にしません。
実際のテストは次のとおりです。
関数は次のとおりです。
ドメイン全体は次のとおりです。
f# - FsUnit.xUnit FSharp.Core アセンブリ バインディング
FSUnit.xUnit を使用して単体テスト プロジェクトを作成しようとしています。
このプロセスに関する私の開発中、私はこのメッセージで失敗するテストに悩まされてきました (常に同じバージョンを引用しているわけではありません):
バインディング リダイレクトを追加しても効果がないようです。私の最新のものは次のとおりです。
これまでうまくいったのは、FSharp.Core NuGet パッケージをダウングレードすることだけですが、この最新の化身ではこれも失敗しています。
この問題で多くの時間を失っています。どんな助けでも非常に感謝しています。
アップデート
私が理解できることから、これは Json.NET のバグによるものです。テストは実行されていますが、判別共用体をシリアライズおよびデシリアライズしているときに、アセンブリ内でエラーがスローされています。Json.NET で問題を提出しました。
さらに更新
F# バージョン 4.4.0.0 を対象とするテスト プロジェクトから Json.NET シリアライザーを呼び出しています。シリアル化しようとしているオブジェクトは、Profile259 (portable-net45+netcore45+wpa81+wp8) を使用してポータブル アセンブリで定義されています。ポータブル アセンブリには、同じバインド リダイレクトが含まれています。
f# - FsCheck を使用して複数の引数の生成を実装するにはどうすればよいですか?
FsCheck を使用して複数の引数の生成を実装するにはどうすればよいですか?
複数の引数の生成をサポートするために、次を実装しました。
次に、これらの引数を使用して、特定のチェッカーの移動オプションの生成を担当する関数の動作をテストしました。
生成された複数の引数の型を管理する場合、Prop.forAll 式のネストは適切な手法ですか?
テスト対象の関数に複数の引数を生成する別の方法はありますか?
関数全体は次のとおりです。
アップデート
マークの答えから導き出された私の質問に対する解決策は次のとおりです。
f# - FsUnit: 異なる F#.Core バージョンを持つポータブル ライブラリとテスト プロジェクトが原因で、ポータブル ライブラリをテストできません
FSharp.Core
バージョンがのポータブル ライブラリがあり3.7.4.0
ます。(単体テスト プロジェクトで)FsUnit
インストールすると、依存関係としてFSharp.Core
versionがインストールされます3.1.2.5
。
このため、単体テスト プロジェクトでポータブル ライブラリの関数を使用すると、次のようになります。
エラーが発生します:
結果メッセージ: System.IO.FileLoadException : ファイルまたはアセンブリ 'FSharp.Core, Version=3.7.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)
FSharp.Core
バージョンをNuGetから4.0.0.1
(更新時に両方のプロジェクトをチェックすることさえ)に更新しようとしましたが、今では次のような単純なものでもあります:
この同様のエラーが発生して、機能しません。
結果メッセージ: System.IO.FileLoadException : ファイルまたはアセンブリ 'FSharp.Core, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)
最初に失敗したテストのエラーは変わりません。
私は痛ましいほど明白な何かが欠けているように感じ、同様の問題を抱えている人を何人か見つけましたが、彼らがそれを解決するために何をしたかわかりません (彼らはすべて解決したようです..) たとえば、これ.
編集
app.config
どちらのプロジェクトもライブラリであり、何かを追加するファイルがありません。
f# - XUnit の FsUnit F# で例外をアサートする
例外がスローされたと主張しようとしています。問題を再現するコードの一部を以下に示します。
エラーは System.Exception がスローされたことを示していますが、それが私が主張していることなので、テストは合格するはずです。誰かが私が間違っているところを手伝ってくれませんか。