問題タブ [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.

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

unit-testing - Moles から Fakes に切り替えた後、VS2012 で任意の単体テストが失敗する

VS2010 で最初に開始したソリューションの一部であるアセンブリに対して、約 300 の単体テストがあります。多くのテストで Micrsoft が提供する Moles フレームワークを使用していましたが、VS2012 (Update 2) にアップグレードした後、公式に提供された Fakes フレームワークを使用するようにテストを変更したいと考えました。

それに応じて、対応するテストを更新しました。これには通常ShimsContext、コードの作成といくつかの小さな変更のみが含まれます。

私のテストプロジェクトにはさまざまなテストクラスがあり、テストを実行すると、説明できない任意のエラーが発生します。

  • リリース モードで 1 つのクラスのテストを実行 => 21 件のテストが失敗し、15 件が合格
  • デバッグ モードで同じクラスのテストを実行 => 2 つのテストが失敗 / 34 が合格
  • リリース モードで同じクラスのテストを再度実行 => 2 つのテストが失敗 / 34 が合格
  • プロジェクト内のすべてのテストを実行 => 21 件のテストが失敗 / 15 件が合格 (上記のクラスの場合)

彼のシステムの同僚に対する同じ動作。エラーメッセージは常に次TypeLoadExceptionのようなものです

テスト メソッド ... 例外がスローされました: System.TypeLoadException: アセンブリ 'System.DirectoryServices.4.0.0.0.Fakes、Version=4.0.0.0、Culture=neutral、PublicKeyToken で型 'System.DirectoryServices.Fakes.ShimDirectorySearcher' を読み込めませんでした=...」

VS2012 自体では、ソース コード エディターにエラーは表示されず、Intellisense は期待どおりに動作し、たとえば ShimDirectorySearcher 上のマウス ツールチップは、それがどこにあるかを示します。 0.0.Fakes.dll) を .NET Reflector で使用すると、エラー メッセージに示されている型が存在します。

VS2010 から VS2012 に切り替える前は、すべてのテストが (デバッグ モードとリリース モードでも) 正常に機能していましたが、何が問題なのかわかりません。上記のように結果が変わるのはなぜですか? 型が存在するにもかかわらず TypeLoadExceptions が発生するのはなぜですか?

残念ながら、Microsoft やインターネットから利用できるヘルプはほとんどありません。

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

c# - アセンブリにフェイクを追加すると、エラー メッセージが表示されずに失敗する

Web サービスと通信するコネクタ アセンブリの単体テストをセットアップしようとしています。私は提供された例に従っていました:

http://blogs.msdn.com/b/atverma/archive/2012/05/03/unit-test-a-project-having-external-dependency-wcf-proxy-using-fakes-amp-visual-studio- 11-beta.aspx

ただし、コネクタ アセンブリにフェイクを追加すると、プロジェクトのビルドに失敗し、エラーは報告されません。そこで、フェイク ファイルを変更して診断をオンにし、ノイズの多い冗長性を使用しましたが、エラー メッセージは表示されませんでした。次に、偽のファイルでスタブとシムの両方の生成を無効にしましたが、それでもビルドに失敗しました。

コネクタ アセンブリのフェイクを削除すると、ビルドされます。偽物を追加すると、プロジェクトがビルドされません。エラーメッセージが表示されないため、これを機能させる方法がわかりません。

どんな助けでも大歓迎です。

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

c# - Microsoft Fakes を使ってモックする

モックする必要がある async(.net 4.5) メソッドでクラスを封印しました。私は Microsoft Fakes を使用しているため、それらは「シム」になります。次のコードは、私がしなければならないことの例です。ビルドされますが、実行時に「Login」コントローラー メソッド内の「LoginAsync」メソッドが呼び出されると、テストがハングします。

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

c# - System.ServiceModel.Channels.Message?

Visual Studio で MS Fakes を初めて使用します。

を偽造する方法の例を教えてくれる人はいSystem.ServiceModel.Channels.Messageますか?

の戻り値を制御したい

これは MS Fakes で可能ですか? MOQ を true にしましたが、MessagePropertiesクラスが封印されているため、機能しません。

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

c# - Microsoft Shim と WCF サービス

この例に従って、シムを活用して、単体テストを実行しているメソッドから呼び出される WCF サービス呼び出しの外部依存関係を削除しようとしています。例とは異なり、次のようなコードを使用して、WCF クライアントをオンザフライで生成します。

CreateChannel メソッドによって返されたプロキシをシム処理するために、その例をどのように適応させるのですか? ShimWCFService クラスでは、次のようなものを追加する必要があると想定しています....

<TService>ただし、戻り値としてその shim にのモック オブジェクトを関連付ける方法がわかりません。

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

web-services - Web サービスの単体テストに Microsoft Fakes を使用する方法は?

私は 3 層アーキテクチャを持つプロジェクトに取り組んでいます:- 1. ビジネス層 2. データ層 3. サービス層

サービス層を単体テストしたい。

現在、データ層を偽造することで、ビジネス層に単体テストを追加することに成功しています。

問題は、ビジネス層を呼び出すサービス層があり、それがデータ層を呼び出すことです。

合格した最初のテスト ケースは、単体テスト プロジェクトにビジネス レイヤー プロジェクトの参照を追加し、データ レイヤーの Fakes を作成することで作成されました。

今私がやりたいことは、ユニットテストプロジェクトにサービスの参照を追加し、同時にMicrosoft Fakesを使用することでこれを達成したいということです。

誰かがこれを理解するのを手伝ってくれますか? 私はこの Fakes フレームワークを初めて使用します。

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

visual-studio-2012 - Microsoft Fakes & TFS 2012 Visual Studio Test Runner - 単体テストが散発的に失敗する

環境

  • Visual Studio 2012 プレミアム更新プログラム 3
  • Team Foundation Server 2012 Update 3
  • 編集:.NET Framework 4
  • DefaultTemplate (DefaultTemplate.11.1.xaml)
    • Visual Studio テスト ランナー
      • 対象プラットフォーム: X86

問題

2 つの単体テスト アセンブリがあります。

  • 拡張テスト
  • ユーザーテスト

どちらもMicrosoft Fakes Frameworkを使用します (スタブシムを使用)。

ユニット テストをローカルで実行すると問題なく動作します(ビルド サーバーにインストールされた Visual Studio でも、4 台の異なるマシンでテストされます)。ただし、ビルド エージェントを使用してビルドすると、一部のユニット テストが例外で失敗します。

またはシムについても同じ:

興味深いのは、散発的に失敗することです。ちょっとした統計を作成しようとしました。

上記の変更以外に、誰もソース コードを変更していないことに注意してください。
すべてのビルドは、詳細なログ レベルを使用して作成されました。シム診断="true";
明示的に必要なシム/スタブのみが .fakes-file に含まれています (それ以外の場合、MSBUILD は終了コード 1 を使用して失敗していました)。

おそらく誰かがすでに同じ問題を経験しているか、誰かがヒントを持っています。

前もって感謝します

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

unit-testing - Microsoft Fakes と静的でジェネリックなメソッドによるシミング

単体テスト用に静的ジェネリック メソッドをシムする必要があります。ただし、Fakes に shim オブジェクトを作成させることはできないようです。これを達成する方法を知っている人はいますか?

特に、Newtonsoft の JsonConvert.DeserializeObject<>() をシムしたい

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

c# - シム・ア・ボイド・メソッド

次の(レガシー、前任者から継承)VB.Net(フレームワーク2.0)のクラスとメソッドがあり、例外でシステムイベントログを作成します。

これを C# (フレームワーク 4.5) 単体テスト プロジェクトでテストしようとしていますが、ロジックの一部ではaValue、コンマで区切られた 2 つの数字が必要です。そうでない場合は、例外とイベント ログがスローされます。

例外が正しくスローされることを確認するために、次の単体テストを設定しました。

MyMethodロジックが予想される例外を引き起こすため、これはすべてうまく機能し、テストに合格します。ただし、イベント ログは書き込まないようにします。MyUtitlityClassでは、呼び出しを傍受して代わりに何もしないように Shim するにはどうすればよいでしょうか。LogError

私が見た Fakes の例はすべて、偽の値を返すメソッドに関するものです (そして、すべてC# で記述されています!) そのようなパターンを実装しようとすると、LogError に getter がないというエラーが発生します。