問題タブ [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 投票する
3 に答える
7050 参照

c# - HttpApplication の単体テスト

いくつかの追加機能を追加する HttpApplication から派生したクラスがあります。これらの機能を単体テストする必要があるところまで来ました。つまり、HttpApplication の新しいインスタンスを作成し、リクエストを偽造し、レスポンス オブジェクトを取得できる必要があります。

HttpApplication オブジェクトの単体テストを正確に行うにはどうすればよいですか? 現在 Moq を使用していますが、必要なモック オブジェクトを設定する方法がわかりません。

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

c# - HttpResponseBase.End()をモックするにはどうすればよいですか?

Moqを使用してHttpResponseBaseのモックオブジェクトを作成しています。ライブラリでHttpResponseBase.End()が呼び出されたことをテストできる必要があります。これを行うには、呼び出しの前にテキストを指定し、呼び出しの後にテキストを指定します。次に、End()を呼び出す前のテキストのみがHttpResponseBase.Outputに存在することを確認します。

問題は、ASP.NETの場合のように、HttpResponseBase.End()をモックして処理を停止する方法がわからないことです。

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

unit-testing - MoqカスタムIIdentity

カスタムRoleProvider(標準のWebフォーム、MVCなし)を作成し、それをテストしたいと思います。プロバイダー自体は、IIdentityのカスタム実装と統合されます(いくつかのプロパティが追加されています)。

私は現在これを持っています:

ただし、VS2008でこのテストを実行すると、次のエラーメッセージが表示されます。

オーバーライドできないメンバーの設定が無効です:id => id.IsAuthenticated

なぜこうなった?そして最も重要なのは、それを解決するために何をする必要があるのでしょうか?

Grz、Kris。

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

unit-testing - MoqでカスタムRoleProviderを単体テストしますか?

カスタム ライブラリにカスタム RoleProvider を作成しました。ユニットテストをしたいと思います。Moq を介して、偽の HttpContextBase を作成しました。これをテスト対象の RoleProvider に渡す方法は?

Identity は、カスタム テスト実装クラスです。これはうまくいきます。プロバイダーで偽のコンテキストを渡す方法がわかりません。これは MVC アプリケーションではありませんが、情報が必要な場合は標準の Web フォームです。

Grz、クリス。

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

c# - Moqの「Verify」メソッドの奇妙な動作

次のコードでは、Test1は成功しますが、Test2は失敗します。

この動作は実際には非常に便利ですが、なぜこのように機能するのか理解できません。Test2も成功するはずです!

私が持っている唯一のアイデアは、どういうわけか、Verifyは「myMethod」が別のテストケースから呼び出されたことを知るのに十分賢いので、「カウントされない」ということです。

ところで、Test1でVerifyの呼び出しを削除しても、同じことが起こります(Test2は失敗します)。

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

c# - データベース トランザクション パラメータをモックすることは可能ですか?

インターフェイスの実装を単体テストしようとしていますが、SqlTransaction パラメーターをインターフェイス メソッドの 1 つに正常にモックアウトするのに少し苦労しています。

私が興味を持っているインターフェイスとテスト中のメソッドは次のようになります..

私はMoqとさまざまな構文アプローチを使用してデータベースオブジェクトをモックアウトしましたが、あまり運がありませんでした.. DbTransaction、DbConnection、DbCommand など)。

私が知りたいのは、主に、この方法でトランザクションをモックアウトできるかどうか、またはここで間違ったツリーを吠えているかどうかです。幸いなことに、プロバイダー固有の SqlTransaction ではなく、一般的な DbTransaction パラメーターを使用するようにインターフェイスを変換できる可能性がありますが、それがモック化に苦労している理由であるとは確信していません。

これが(そしてこれは完全に間違っている可能性があるので、私がこれに間違って近づいている場合は私を修正するかコメントしてください)コードをモックするためにこれまでに得たものです...

ただし、これは mockCommand.Setup 行で ArgumentException をスローするようです.. (オーバーライドできないメンバーでの無効なセットアップ)

モックされた SqlTransaction パラメータを使用してこのメ​​ソッドを正しく単体テストする方法について、アイデアや提案はありますか?

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

c# - Moqを使用した「短絡」voidメソッド?

私のチームは最近、Moqをモックフレームワークとして使用することを決定しました。これは、その驚異的な柔軟性と非常に読みやすい構文のためです。私たちはそれに慣れていないので、単純な質問のように見えるものに遭遇しています-検索(ここでは、Googleなど)は、Moqの他のニュアンスに関する多くの議論を見つけますが、必ずしも私が求めているものではありません、そして一見関連しているように見えるいくつかの質問は、赤いニシンに変わりました。

外部依存関係(正確にはAmazon SimpleDb)を持つクラスをテストしていますが、テストをライブ接続にバインドしたくありません。特定の方法:

  • いくつかの「ビジネス」ロジックを適用します
  • 必要に応じて、構築したプロバイダーを介してSDBへの呼び出しを呼び出します。呼び出しましょうSaveItem()

必要なコンテキストを設定し、呼び出されたことを確認するようにこれを単体テストしたいのですが、実際には呼び出されないSaveItem()方法でSaveItem()(Aのため)、SDBのプロバイダーは完全に水和されておらず、爆撃される可能性が高いモックですB)そのトランザクションに何百、何千回も支払う必要はありません)。

値を返すメソッドを扱う場合、これは簡単なことでした。

ただし、上記で概説した場合、私の " SaveItem()"メソッドは無効であるため、MoqのReturns()メソッドを使用するオプションは使用できません。そして、SaveItem()呼び出されたことを確認するためのコールバックを設定することはできますが、実際には何もしないようにすることはできません。

ナイーブ/希望に満ちた、私は次のことがうまくいくと思いましたが、それでもメソッドを呼び出すようです:

それで、百万ドルの質問:次の架空のコードのMoqは何ですか?

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

moq - MoqSetupPropertyが機能しない

以下のコードでmoq.SetupPropertyが失敗すると、次のコードが失敗する理由を誰かに教えてもらえますか?