問題タブ [moq]

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 投票する
2 に答える
14731 参照

c# - Moqをよりよく理解するために助けが必要

私はMoqのドキュメントを見てきましたが、コメントが短すぎて、それができることのそれぞれを理解できません。

私が得られない最初のことはIt.IsAny<string>(). //example using string

値を入れるだけでなく、これを使用する利点はありますか? 値を気にしないならこれを使えと言う人がいるのは知っていますが、値を気にしないなら、単に「a」か何かをすることはできませんか? これは、より多くのタイピングのように思えます。

第二に、値を気にしない場合の例はいつですか? 私は、Moq が一致する値を必要とすると考えました。

It.Is<>目的も使い方も全くわかりません。例とそれが何を示そうとしているのかわからない。

Times次に、いつ使用するか(およびそのAtMostメソッドなど)がわかりません。何かをセットアップする回数を制限するのはなぜですか? 2 回使用する必要があるAppConfig値があります。たとえば、一度に制限したいのはなぜですか?これは、テストが失敗するだけです。これは、他の人があなたのコードや何かに別のものを追加するのを止めるためですか?

使い方がわかりませんmock.SetupAllProperties(); プロパティを設定するものは何ですか?

また、プロパティを設定する方法が非常に多くある理由と、それらの違いが何であるかもわかりません。ドキュメントには次のものがあります。

Moq の多くのものが表示されていることに気付きました()-<>それらの違いは何ですか?また、使用中はどのように見えるでしょうか?

彼らが持っている理由もわかりませんSetupGetSetupSetプロパティの設定に 使用しませんか? SetupSetには、ドキュメントで使用する 5 つの異なる方法があります。さらに、と呼ばれる別のものSetupProperty。だからなんでこんなに多いのかわからない。

余談ですが、ラムダで使用される変数が他のラムダから独立しているかどうか疑問に思っています。例えば:

これで問題ないでしょうか、それとも変数間に競合がありますmか?

最後に、このビデオを見ていましたが、Visual Studio が表示されているかどうか疑問に思っています。彼のインテリセンスは違うように見えます。彼のために電球がポップアップし (netbeans のつらい思い出がよみがえるので、私はそうではありません)、1 つの開き括弧から閉じ括弧などに至る行があります。

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

asp.net-mvc - Moqを使用してカスタムModelBinderをユニットテストする方法は?

作成したカスタムModelBinderをテストするためのユニットテストを作成するのに問題があります。私がユニットテストしようとしているModelBinderは、ここに投稿したJsonDictionaryModelBinderです。

私が抱えている問題は、Moqを使用してすべてのモックを設定することです。HttpContextBaseが正しくモックされていないため、Null例外が発生し続けます。おもう。

誰かが私が正しくやっていないことを理解するのを手伝ってもらえますか?

これが私が書き込もうとしているユニットテストのサンプルですが、機能しません:

上記で使用した「FakeHttpContext」メソッドは次のとおりです。

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

unit-testing - Moqはモックを設定するときに名前空間を無視しますか?

2番目のアサーションは、以下の単体テストでは実行されません。

Get <Bar.MyClass>()を設定すると、Get <Foo.MyClass>()の設定が上書きされるようです。これは、Get <T>()を設定するときにMoqが名前空間FooとBarを無視することを意味しますか?MyClassクラスの名前を変更せず、IRepoを実装せずに、これを回避する方法はありますか?Moq3.1.416.3を使用しています。

更新:これは次のリリースで修正されるようです。

0 投票する
2 に答える
3060 参照

unit-testing - 単体テストでいずれかのメソッドが呼び出されたことを確認します

例:

次のことを確認するテストをMoqで作成するにはどうすればよいですか。

  1. プロパティIsNewが読み取られていること
  2. またはが呼び出されCreate()Update()
0 投票する
2 に答える
261 参照

nunit - モック検証を使用した単体テスト

私は単体テストを持っています

  1. モックを作成します
  2. テストするメソッドを呼び出します(モックも注入します)
  3. メソッドの結果をアサートします
  4. モック呼び出しを検証します

モック呼び出しが期待どおりに検証されない場合、例外が発生し、テストに失敗します。
これを検証と正しく呼び出すにはどうすればよいですか? 電話するだけでいいのかな

またはAssertで呼び出す必要があります

検証が失敗すると、とにかく例外が発生します。
模擬検証の正しい方法は何ですか?

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

asp.net-mvc - Moqを使用してHttpRequestをモックするときにServerVariable値を設定しますか?

ASP.NET MVC での単体テストのために Moq を使用して HttpRequest オブジェクトをモックしています。リクエストで ServerVariables (LOGON_USER) の 1 つを設定する必要があります。これは可能ですか?次の方法を試してみましたが、ServerVariables コレクションはオーバーライドできないため、例外が発生します。

テスト用に ServerVariable 値を設定することはできますか?

特定のキーを設定しようとするのではなく、新しい NameValueCollection を渡す必要がありますか?

0 投票する
2 に答える
582 参照

c# - Moq オブジェクトを反映すると、2 つの追加プロパティが生成されます

リフレクションを使用して、あるオブジェクト タイプから別のオブジェクト タイプに変換するメソッドがいくつかあります。私は Moq を介して変換メソッドをテストしている最中で、処理方法がわからない動作に遭遇しました。Moq オブジェクトを調べて PropertyInfo を取得すると、さらに 2 つのオブジェクトが得られます。

  • Moq.Mock``1[Namespace.Class+IElement] Mock
  • Moq.Mock Mock

これを再現するコードは次のとおりです。

これらのプロパティを取得せずに Moq オブジェクトを反映する方法はありますか?

0 投票する
4 に答える
10307 参照

vb.net - Moq を使用した VB.NET メソッドのモック

メンバーシップ プロバイダーを使用してユーザーの詳細を更新するコントローラー アクションを単体テストしようとしています。今まで使いやすかったMoqを使っています。

問題は、何も返さないメソッドへの呼び出しをモックするように見えないことです。

モック メンバーシップ サービスのセットアップがコンパイルされません。エラーは次のとおりです。

これらの引数を使用してアクセス可能な「セットアップ」を呼び出すことができないため、オーバーロードの解決に失敗しました:

'Public Function Setup(Of TResult)(Expression As System.Linq.Expressions.Expression(Of System.Func(Of Services.IMembershipService, TResult))) As Moq.Language.Flow.ISetup(Of Services.IMembershipService, TResult)' : 式は値を生成しません。

'Public Function Setup(Of TResult)(Expression As System.Linq.Expressions.Expression(Of System.Func(Of Services.IMembershipService, TResult))) As Moq.Language.Flow.ISetup(Of Services.IMembershipService, TResult)' : 型パラメーターのデータ型は、これらの引数から推測できません。データ型を明示的に指定すると、このエラーが修正される場合があります。

'Public Function Setup(expression As System.Linq.Expressions.Expression(Of System.Action(Of Services.IMembershipService))) As Moq.Language.Flow.ISetup(Of Services.IMembershipService)': 式は値を生成しません。

私は何を逃したのですか?クラスに呼び出したいメソッドがある場合はいつでも、Moq を使用するのではなく、偽のクラスを作成する必要がありますか?

編集:

OK、少し読んでみると、VB で Function() を使用してラムダを表現する方法が原因であることがわかります。これには結果が必要です。

誰かがこれに対する回避策を見つけましたか、それともメソッドを偽造するために Moq を捨てる必要がありますか?