問題タブ [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.

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

f# - Foq Verify メソッドの使用を使用すると、型パラメーターを持つインターフェイスで match が失敗する

私はこのようなインターフェースを持っています

私はこのように嘲笑しようとします

こんな試験があります

このapp.Create関数は、db.Setを使用して を呼び出しますAsync.AwaitTask

これはすべてうまく機能し、Foq は素晴らしいです。ただし、検証によって system.exception が発生します。methodsMatchFoqの関数expectedMethodはfalseParameterInfo.ParameterTypeを返しSystem.Collections.Generic.IEnumerable``1[Result]ます。actual.MethodParameterInfo.ParameterTypeSystem.Collections.Generic.IEnumerable``1[T]

型パラメーターの追加と削除を試みましたが、役に立ちませんでした。インターフェイスに型パラメーター (およびタスク) が必要です。これは、C# で他の人によって実装されているためです。

これはgenerateAddInvocationメソッドの問題ですか、それとも検証の呼び出しが間違っていますか?

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

f# - 非同期を返す Foq でモックを設定する方法?

を使用してモックを設定しようとしています

これによりNotSupportedException、関数内で a が発生しますtoCall

FoqでAsyncをモックするにはどうすればよいですか?

サポートされていますか?

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

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# からこの種のイベントをモック/トリガーするにはどうすればよいですか?

0 投票する
3 に答える
202 参照

unit-testing - Foq Mock.Expect with Times > 1 は常に失敗します

Mock.Expect私が見つけた例はどれTimesも、0 または 1 以外を使用していません (一度もありません)。Foq.Usage.fsx の既存のテストの 1 つを変更して、0 または 1 ではない何かを試行しましたが、機能させることができません。

誰かが何か間違っていると思いますか?

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

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# で設定できますか?

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

c# - Foq を使用して明示的に実装されたインターフェイスでクラスをモックする

FoqDbSetを使用してエンティティ フレームワークをモックしたかったのです。次のようになります。

いくつかの場所で強制してキャストしようとしましたがx、うまくいきIQueryableません。

hereのドキュメントでわかるように、を介してインターフェイスをDbSet実装していますが、プロパティを「明示的に」実装することで実装しています。IQueryableDbQuery

Moqには Function があるためAs、次のように扱うように指示できますIQueryable

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

ninject - F# のモックで Ninject を使用する

この質問は、ここで見つけることができるより大きな質問の一部です

プロダクション コードでは Ninject とコンストラクタ インジェクションを使用するため、サービスは次のようになります。

コンストラクターパラメーターのリストは、時間の経過とともに変更される可能性があり、変更される可能性があります。これが、テストでも IoC を使用したい理由です。

C# NUnit では、常にモック実装を提供する Ninject.MockingKernel があり、各テスト フィクスチャで実際の実装に sut を再バインドするだけなので、これは非常に簡単です。

F# xUnit で同じことを達成する方法。