問題タブ [moq-3]
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# - C# モックが実際のコードで機能しない
現在、コードを使用した次のメソッドがあります。
次のテストコードで呼び出します。
実際のコードでモック オブジェクトのホストとポートを呼び出すと、\
ただし、テスト コードからモックのプロパティを呼び出すと、正しいスタブ プロパティが返されます。
ご覧のとおり、実際のコードではホストもデフォルト ポートも返されませんが、テストコードではモック フレームワークから正しいスタブ プロパティが返されますが、オブジェクトは両方の環境で同じです。
(例のように) FakeItEasy の代わりにモッキング フレームワーク Moq を使用した場合もまったく同じです。
前もって感謝します。
c# - MOQ 例外はユーザーによって処理されませんでした
私はMOQを初めて使用し、現在学習中です。単体テストを作成する必要があるタスクを取得しましたが、見つけることができなかった以下のエラーが発生しています。誰でもこれで私を助けてください。また、コードを確認して、テストケースに変更が必要な場合はアドバイスをください。
想定: IAcronisService.GetActivitiesFromDate("mygroup", 2016 年 5 月 24 日 8:33:34 PM) の呼び出しは、模擬動作 Strict で失敗しました.....
Saveメソッドの場合(例外がスローされたsaveメソッドでコメントしました)
Process メソッド呼び出し save メソッド
デバッグ時に、上記のプロセス メソッドの最初の行にマウスを合わせると、以下の行も表示されます。サービスオブジェクトは呼び出し/モックではないと思いました。これは上記の例外と関係がありますか? いくつかの変更を提案してください。
(IAcronisServiceProxy)AcronisService).AcronisURL
タイプ MOQ.MockException の例外をスローしました。
Save メソッド
私が書いたテスト方法、
c# - count メソッドの使用
私は静かに Moq フレームワークとユニットを初めて使用しています。私の目標は、モックオブジェクトに情報を挿入することであり、現在の値で挿入されたオブジェクトの数をカウントできるようにしたいと考えています。
次の方法でモックを作成します。
現在、モック コンテキストには 2 つのポリシーがあります。同じ名前「policy2」のポリシーをさらに 2 つ追加したいので、追加すると、ポリシー名が「policy2」の 3 つのオブジェクトが作成されます。
私の追加ポリシー関数:
アサーションをチェックするコード:
このコードは現在、正しく機能しています
c# - モック化されたオブジェクト内にモック化されたオブジェクトを作成するにはどうすればよいですか?
コードにこれらの 2 行があります。
今、単体テストを作成しています。顧客と従業員の両方のオブジェクトが保護されているため、それらをモックする必要があります。
最初のものを正常にモックし、ID で顧客を取得するための戻り値としてモック オブジェクト「顧客」を作成しました。
ご覧のとおり、「employee」オブジェクトはモック オブジェクト「customer」内にあります。つまり、最初のモック オブジェクト (Customer) 内にもモック オブジェクトを提供する必要があります。私は自分のコードがこのようになることを期待しています。
ただし、テストのビルドにエラーはありません。customer.employee は常に NULL です。
c# - 単体テスト c# の ControllerContext で DisplayMode をモックする方法
controllerContext をパラメーターとして使用して、第 3 部ライブラリ「Rotativa」に基づいて PDF ドキュメントを生成するアクションをコントローラーでテストしたいと考えています。
アクション(関数)の実装は次のとおりです。
そして、これが私が単体テストを機能させようとしている方法です:
テスト名: DetailsPrint_shouldPrint テスト フルネーム: OPSReviewTest._2A1ControllerTest.DetailsPrint_shouldPrint テスト ソース: C:\inetpub\wwwroot\OpsReview\OPSReviewTest\Controllers\Api_2A1ControllerTest.cs: 46 行目 テスト結果: 失敗 テスト期間: 0:04:39,3039007 結果 StackTrace :
System.Web.WebPages.DisplayModeProvider.GetDisplayMode(HttpContextBase コンテキスト) で System.Web.Mvc.ControllerContext.get_DisplayMode() 結果メッセージ: テスト メソッド OPSReviewTest._2A1ControllerTest.DetailsPrint_shouldPrint が例外をスローしました: System.NullReferenceException: オブジェクト参照が設定されていませんオブジェクトのインスタンス。
助けや提案、ありがとう。
c# - Moqの使用:モックオブジェクトの更新は自動的に?
MoQ フレームワークは初めてです。MoQフレームワークを使用してコントローラーの単体テストを作成しています。これが私のテスト方法です。
これが私のコントローラーメソッドです。
テストが実行され、送信された mockedItemDetail と受信されたモデルの結果 controllerItemDetail をアサートしたいと考えています。
上記の場合、mockedItemDetail プロパティ「Name」は null で、controllerItemDetail プロパティ Name を「Changed Name」として受け取りました。
しかし、デバッグするたびに、テストメソッド GetDetails() を呼び出した後、
- 私の mockedItemDetail プロパティ Name も現在のスコープで「変更された名前」として更新されますが、その理由がわかりません。これは MoQ の実際の動作ですか?
編集内容
以下のモック リストで上記と同じケースを考えてみましょう。ここでは、モック オブジェクトの変更がすべてのコンテキストで更新されるわけではありません。つまり、mockedItemDetailList のリスト カウントは 0 のままで、controllerItemDetail のリスト カウントは、テスト メソッドの呼び出し後でも 1 です。なんで?
試験方法:
コントローラーの方法: