問題タブ [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.
c# - moqを使用してController.Userをモックする方法
このような役割について Controller.User に問い合わせる ActionMethods がいくつかあります。
その条件で便利に行動します。
このようなコードを使用して、これらのメソッドのテストを開始しています
Controller.User が設定されていないため、そのテストは失敗します。何か案が?
unit-testing - Moq - メソッド内の参照の変更を単体テストする方法
別の日、別の質問。私のサービスレイヤーには次のメソッドがあります
このメソッドは、このヘルパー メソッドを呼び出して、新しい一致オブジェクトを作成します。
リポジトリは指定された一致オブジェクトを保存し、ID を 0 より大きい値に設定します。
matchviewdata オブジェクトは、一致オブジェクトの一部のプロパティ (id を含む) をコピーします。
単体テストでは、サービス内の結果のビューデータ オブジェクトの ID が 0 より大きいことを確認する必要があります。これをアーカイブするには、リポジトリと add メソッドの動作をモックする必要があります。ただし、サービス メソッドは呼び出されるたびに新しい一致オブジェクトを作成し、リポジトリの add メソッドは参照された一致オブジェクトを更新します (戻り値は必要ありません)。これをmoqで解決する方法がわかりません。
これはこれまでの私の単体テストです:
他のバリエーションをいくつか試しましたが、何も機能しません。
c# - C# で Moq を使用してクローン メソッドを単体テストする
クローニングメソッドを持ついくつかの基本的なクラスがあります:
ValueD を追加したかどうかを示す単体テストが必要ですが、それを Clone メソッドに追加するのを忘れています。私の最初の試みは、Moq とその VerifyGet メソッドを使用して、各プロパティがアクセスされていることを確認することでした。
これは、VerifyGet メソッドが Property アクセサーの戻り値の型を知る必要があるため機能しません。実行時にそれを挿入する方法がわかりません (「オブジェクト」を使用しようとした私の不自由な試みがクラッシュし、やけど)。
Moq を使用するのが良いアイデアかどうかさえわかりません。それは私の最初のアイデアでした。
更新: クローニング メソッドをテストするための迅速かつ簡単な一般的な方法がないため、各クラスの型固有のテストを作成することにしました。これにより、プロパティがいつ追加されたかを知るという問題が残ります。これをクローンユニットテストに追加することにしました:
プロパティを追加すると、テストは失敗します。署名の一致が失敗した場合、残りのテストを修正するのに十分な責任があるかどうかは、依然として私にかかっています。
tdd - 非仮想イベントのモック(COM相互運用クラス)
編集:言語/プラットフォームはC#/ .Net
私は現在、現在のプロジェクトで膨大な単体テストの空白を埋めようとしていますが、TDDを初めて使用することは確かですが、ビジネスに不可欠な機能のテストを行う方法についてはかなり困惑しています。
私はMoqを手に取り、簡単なモックを作成するのに十分な時間を過ごしましたが、アプリケーションのコアにはかなり大きくて恐ろしいCOM相互運用レイヤーがあり、ユニットテストを適切に行う方法を概念化するのに苦労しています。COMコンポーネントは完全にサードパーティであるため、変更することはできず、電話を処理するための有限状態マシンに相当するものを実装します。コンポーネントは、状態の変化をシミュレートするために特定の順序でテストしたい一連の非仮想イベントを介してアプリケーションに通知しますが、Moqは仮想イベント以外に対してこれを行う方法を提供していません。
それで、より知識のあるTDDer / Mockistsへの私の質問は、この種のものをどのようにテストするのかということです。
どうやらTypeMockはこれをサポートしているようです(それ自体の欠点と引き換えに)が、型安全性と私の背後で何か悪意のあることをしているという私の一般的な感覚に関するさまざまな理由から、私はむしろそれを使用したくありません。
vb.net - VB.Net で moq を使用した経験
moq モッキング フレームワークがとても気に入っています。私はいくつかのプロジェクトでそれを使用しました。残念ながら、私の顧客の 1 人が VB.Net の使用を要求しています。私の好みではありませんが、ねえ、.Net は .Net ですよね?
moq が VB で問題を抱えていると聞いたことがあります。これは本当ですか?そうですか、どんなトラブルですか?.Net の言語にとらわれない性質を考えると、うまく動作すると思います。
VB で使用する他のモッキング フレームワークの使用を検討する必要がありますか?
moq - この DotNetOpenAuth Response オブジェクトを moq するにはどうすればよいですか?
DotNetOpenAuth (正式には DotNetOpenId と呼ばれる)Response
オブジェクトを受け取るメソッドがあります。私のメソッドは、要求されたデータを抽出し、このユーザーがシステムに存在するかどうかを確認します。
さて、moqを使用してこの応答オブジェクトをモックアップし、認証方法をテストするにはどうすればよいAuthenticateUser()
でしょうか ( )。
モッキング フレームワーク: moq
言語: .NET C# 3.5 sp1
応答オブジェクト: DotNetOpenAuth フレームワークから取得
debugging - Moq で作成された模擬インスタンスを取得すると System.BadImageFormatException がスローされるのはなぜですか?
この質問は別の質問に関連している可能性があり、確かに System.BadImageFormatException が発生します。多分それは同じことですが、露出が異なりますか?
私は次のコードを持っています:
次に、次のように Moq を使用して IFooRepo をモックするテストがあります。
上記のコードは、Visual Studio 2008 でテストをデバッグする場合を除いて正常に実行されます。これは、 Ayende Rahien が投稿したものと似ているでしょうか?
現在の回避策は、IFooRepo の偽物を実装することですが、この種のシナリオで悪いイメージが生成される理由について知りたいのですが、修正はありますか? System.Reflection.Emit はバグがありますか? または、自分のコードに明らかな何かが欠けていますか?
編集: GetFoo() の誤った署名を投稿しました。問題を正しく再現する署名を GetFoo<T, F>() に修正しました。GDR をインストールすると、この問題は解決しません。
編集: F の制約に型パラメーター T が含まれている場合、 BadImageFormatException が発生するようです。しかし、たとえば に変更するとwhere F : class, new()
、すべてが期待どおりに機能します。
c# - アクション引数を持つ Moq
私は Moq 3.x を使用しようとしていますが、見事に動作します。ただし、解決方法がわからない問題があります。与えられた
私は次のことを試みています:
私の問題は、passingTestSpec.Object.Run(... some action ...) の呼び出しが false を返すことです。Moq ライブラリは、Setup() 呼び出しで Run() に渡した引数にアクションを一致させようとして失敗したようです。実際には、Run() 呼び出しにどのアクションを入れても問題ありません...それでも false が返されます。
何か案は?
[編集] 何かを発見しました。セットアップ行を次のように置き換えた場合
テストに合格します。ただし、 .Run() メソッドが呼び出されるアクションがわからないため、これは解決策ではありません。アクションに相当する It.IsAny を知っている人はいますか?
asp.net-mvc - ISingleResult を moq するにはどうすればよいですか? するべきか?またはより良い方法がありますか?
コントローラーにこのようなアクションメソッドがあります
そして、私はそのテストの作成を開始したかった (はい、ビルド前ではなくビルド後... しかし、コードは私が TDD を使い始める前に書かれていたので...)
そして、このようなプロパティをコントローラーに追加することがわかりました
コンストラクターに次のようなものを追加できます...
次に、NorthwindDatacontext のモックを使用して ContextBuilder プロパティを設定する ActionMethod をテストできます。
しかし... NorthwindDatacontext のすべてのメソッドが returnType として ISingleResult を使用し、そのインターフェイスでオブジェクトを作成する方法が見つからないため、これを使用する方法が見つかりませんでした。私はこれを試しました
ただし、ISingleResult に変換すると theResult が null になるため、機能しません。
この方法でテストするために ISingleResult オブジェクトを作成する方法はありますか、またはここで間違った方法を実行していますか?
前もって感謝します
c# - Moq を使用して関数内のデータ ソースへの接続をモックしますか?
Moq を使い始めましたが、以下のコードでメソッドExecuteをテストする方法がわかりません。
私は次のクラスを持っています:
}
もう 1 つのメソッドは、構成ファイル内の情報から IDataReaderPlugin と IDataWriterPlugin を作成して初期化します。
メソッドExecuteをテストしたい。したがって、m_sourceとm_destをモックする必要があり、 m_destに送信された結果をテストした後です。
Moqでこれを達成するにはどうすればよいですか?
ありがとう。