問題タブ [automoq]
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.
unit-testing - テスト中の同じクラスのメソッドをモックする方法は?
Moq
v4.13 とを使用していC#
ます。MethodA
のインターフェースでメソッドをテストしようとしていますMyClass : IMyInterface
。
MethodA
別のインターフェイス ( ) のメソッドの呼び出しがあり、IAnother
それらをセットアップしました。これらはうまく設定されているようです。
MethodA
MethodB
また、 ( on でIMyInterface
) およびMethodC
( public であり、 on ではなくIMyInterface
) inを呼び出しますMyClass
。
セットアップしましMethodB
たが、テスト中に実際のコードMethodB
が呼び出されたようです。
に関してはMethodC
、その設定方法がわかりません。
c# - Moq + Autofixture: 依存プロパティに Setup を使用すると、モック オブジェクト全体がクリアされます
Moq と AutoFixture を使用しています。
次のインターフェースがあるとします。
次のようなテストを実行しています。
最初のテストは成功しますが、2 番目のテストは失敗します: Expected obj.Object.Int2.Prop2 not to be <null> or empty, but found <null>
. 依存プロパティの 1 つで Setup を使用すると、オブジェクトInt2
全体がクリアされるInt2
(すべてのプロパティがデフォルト値に設定される) ようです。何故ですか?それを避ける方法は?
obj.Object
作成後は次のようになります。
しかし、実行後Setup
は次のようになります ( Prop2
is null
):
面白いことにInt2
、作成後にプロパティにアクセスすると、正常に動作します。したがって、このテストはパスします (変数int2
はどこにも使用されていません)。
何か案は?
これは参照用の .csproj ファイルでもあります。
c# - Moq、メソッド HttpClient.SendAsync は公開されています。直し方?
エラーが発生しています:
System.ArgumentException: メソッド HttpClient.SendAsync はパブリックです。代わりに、強い型指定の Expect オーバーロードを使用してください: mock.Setup(x => x.SendAsync());
次のコードを実行しようとしている間:
ここで何が欠けているのでしょうか?