問題タブ [microsoft-fakes]
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# - シム辞書
次のような辞書クラスの拡張であるクラスを作成しました。
PKMRelations の Count メソッドをシムして、必要な値を返すようにします。通常はいくつかの要素を追加するだけですが、現在の構成ではそれができません。
現在、辞書の Count メソッドをシムする方法がわかりません。これを行うには、この特定のジェネリック ディクショナリ クラスの Shim を作成する必要があります。
これはまったく可能ですか?もしそうなら、どうすればこれを行うことができますか?
.net - Microsoft Fakes を使用して、サード パーティの実行可能ファイルで .net 関数呼び出しを "shim" することはできますか?
MS Fakes を使用して、src コードがある vs プロジェクトのスタブまたはシム関数に関数呼び出しをリダイレクトできますが、サード パーティの exe でシム関数をデバッグする目的で使用できるかどうか疑問に思っていましたか? 説明ページには、shim は実行時に動作すると書かれているので、サードパーティの実行可能ファイルで使用できない理由はありません。
c# - Web サービス プロキシでマイクロソフトの偽物を使用する方法は?
既存の注文送信ルーチンの単体テストを作成しようとしています。このルーチンは、エンティティ フレームワークを使用して注文を抽出し、ef クラスのデータを Web サービスによって公開されるルーチンにマップし、Web サービスに送信します。
Web サービスのシムを作成したいので、注文を送信するルーチンをトラップし、送信されたオブジェクトを回復してテストできます。
プロキシ クラスの shim を作成するにはどうすればよいですか?
ありがとうルカ
unit-testing - HttpWebRequest をシムする方法
HttpWebRequest をシムしようとすると問題が発生します。システム アセンブリのフェイク アセンブリを追加しただけでは、すぐには機能しません。ただし、fakes ファイルを変更して特定の名前空間を追加すると、機能します。
問題は、これがローカルでしか機能しないことです。Team Foundation Server の自動ビルドは、ShimHttpWebRequest を解決しようとするとエラーをスローします。ビルドサーバーでVSを使用して手動でビルドすると機能するため、自動ビルドはフェイクファイルを無視するようです。
c# - GetHashCode をモックする Fake オブジェクトの作成
次のクラスがあります(無関係な部分は削除されています)...
このメソッドをテストする単体テストを作成したいのですが、GetHashCode
呼び出しごとに異なる値を返すため、GetHashCode
Microsoft Fakes を使用してモックアウトしようとしています (私は VS 2012 にいます)。
これを行う方法がわかりません。XElement の Shim とオブジェクト クラスの Stub を作成しようとしましたが、2 つをバインドする方法がわかりません。不可能なことをしようとしているのですか、それとも単に何かを見逃しているだけですか?
これが私の単体テストコードです...
アップデート
私は自分の問題を解決しましたが、元の質問には答えなかったので、他の誰かが解決策を持っている場合に備えて、元の質問に自分の解決策を追加しています。オブジェクトをモックすることなく問題を解決することになりました。ハードコードされた値に対して期待値を設定するのではなく、GetHashCode
.
そして、他の条件をテストします...
GetNullableAttrText 拡張メソッドをモックアウトしないため、理想的ではありませんが、私見では、Fakes を使用するよりもクリーンです。
visual-studio-2012 - Fakes プロジェクトでの警告 MSB3270
VS2012 (Update 2) への移行と Fakes の使用後、MSBuild は新しい警告を表示し始めました。
ビルド中のプロジェクト "MSIL" のプロセッサ アーキテクチャと、参照 "System.Data"、"x86" のプロセッサ アーキテクチャの間に不一致がありました。この不一致により、ランタイム エラーが発生する可能性があります。構成マネージャーを使用してプロジェクトのターゲット プロセッサ アーキテクチャを変更し、プロジェクトと参照の間でプロセッサ アーキテクチャを調整するか、プロジェクトのターゲット プロセッサ アーキテクチャと一致するプロセッサ アーキテクチャの参照に依存することを検討してください。
このソリューションのすべてのプロジェクトは、「AnyCPU」プラットフォーム ターゲットに構成されています。ただし、動的に生成された Fakes プロジェクトには、次のパスを持つ System.Data への参照が含まれています。 GAC_32 の代わりに GAC_64 の System.Data.dll を使用するように Fakes を構成しますか?
以前、MS フォーラムでこの質問をしましたが、適切な結果はありませんでした-4b4b-8aa1-bacae64e473f
c# - UnitTestIsolationException: リリース/デバッグ モードで Shims テストを実行中に例外をスローする
Microsoft Shims を使用してこの単体テストを実行しようとしていますが、Shims.Context.Create();
メソッドで例外がスローされます。
環境: VS 2012、Win2K8 R2
詳細な例外:
visual-studio-2012 - TFS が Microsoft Fakes を含むプロジェクトのビルドに失敗する
各チェックイン後に Fakes フレームワークをテスト プロジェクトに追加すると、次のエラーが発生します。
また、VSをチェックインした後、上記の両方のファイルを読み取り専用としてマークします。これが発生した後、ローカル マシンでのプロジェクトのビルドはまったく同じエラーで失敗します。