問題タブ [foq]
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# - Foq Verify メソッドの使用を使用すると、型パラメーターを持つインターフェイスで match が失敗する
私はこのようなインターフェースを持っています
私はこのように嘲笑しようとします
こんな試験があります
このapp.Create
関数は、db.Set
を使用して を呼び出しますAsync.AwaitTask
。
これはすべてうまく機能し、Foq は素晴らしいです。ただし、検証によって system.exception が発生します。methodsMatch
Foqの関数expectedMethod
はfalseParameterInfo.ParameterType
を返しSystem.Collections.Generic.IEnumerable``1[Result]
ます。actual.Method
ParameterInfo.ParameterType
System.Collections.Generic.IEnumerable``1[T]
型パラメーターの追加と削除を試みましたが、役に立ちませんでした。インターフェイスに型パラメーター (およびタスク) が必要です。これは、C# で他の人によって実装されているためです。
これはgenerateAddInvocation
メソッドの問題ですか、それとも検証の呼び出しが間違っていますか?
f# - 非同期を返す Foq でモックを設定する方法?
を使用してモックを設定しようとしています
これによりNotSupportedException
、関数内で a が発生しますtoCall
。
FoqでAsyncをモックするにはどうすればよいですか?
サポートされていますか?
unit-testing - F# Foq での非標準イベントのモック
私は F# を初めて使用し、言語を学習するためにいくつかの演習を行っています。私が現在やろうとしているのは、カスタム Castle.Windsor 施設の単体テストを作成することです。カーネルをモックして、「ComponentRegistered」イベントを発生させようとしています。
私が使用しているツールは FsUnit/xUnit/Foq です。
私のコード:
エラーメッセージ:
エラー 4 イベント 'ComponentRegistered' に標準外のタイプがあります。このイベントが別の CLI 言語で宣言されている場合、イベントの明示的な add_ComponentRegistered および remove_ComponentRegistered メソッドを使用して、このイベントにアクセスする必要がある場合があります。このイベントが F# で宣言されている場合は、イベントの型を 'IDelegateEvent< >' または 'IEvent< ,_>' のいずれかのインスタンス化にします。C:\Workbench\EvilDev\evildev.commons\Tests\EvilDev.Commons.Windsor.Tests\Auto Resolver Facility Specification.fs 35 53 EvilDev.Commons.Windsor.Tests
F# からこの種のイベントをモック/トリガーするにはどうすればよいですか?
unit-testing - Foq Mock.Expect with Times > 1 は常に失敗します
Mock.Expect
私が見つけた例はどれTimes
も、0 または 1 以外を使用していません (一度もありません)。Foq.Usage.fsx の既存のテストの 1 つを変更して、0 または 1 ではない何かを試行しましたが、機能させることができません。
誰かが何か間違っていると思いますか?
unit-testing - F# で Foq を使用して C# out パラメーターを構成する
F# と Foq を使用して、C# プロジェクトの単体テストを作成しています。
メソッドにパラメーターがあるインターフェイスのモックを設定しようとしていout
ますが、開始する方法さえわかりません。おそらくコードの引用に関係していますが、私の理解はここまでです。
インターフェイスは次のとおりです。
C# では、インターフェイスの Foq の使用法は次のようになります。
F# でそれを実現する方法については、完全に迷っています。私はの線に沿って何かを試しました
その結果、引用式に下線が引かれ、次のエラー メッセージが表示されます。
a と b がどのような型であると想定されているかを示していないため、これを修正する方法がわかりません。
:?>
( を使用するとさらにワイルドになりますopen Foq.Linq
。その後、[エラー リスト] ウィンドウが のようなオーバーロードの可能性についてAction<'TAbstract> -> ActionBuilder<'TAbstract>
通知し始め、さらに迷子になります....)
どんな支援や説明も大歓迎です!
編集:
そのため、ここで述べたように、byref/out パラメータはコードの引用では使用できません。これを F# で設定できますか?
ninject - F# のモックで Ninject を使用する
この質問は、ここで見つけることができるより大きな質問の一部です
プロダクション コードでは Ninject とコンストラクタ インジェクションを使用するため、サービスは次のようになります。
コンストラクターパラメーターのリストは、時間の経過とともに変更される可能性があり、変更される可能性があります。これが、テストでも IoC を使用したい理由です。
C# NUnit では、常にモック実装を提供する Ninject.MockingKernel があり、各テスト フィクスチャで実際の実装に sut を再バインドするだけなので、これは非常に簡単です。
F# xUnit で同じことを達成する方法。