問題タブ [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.
unit-testing - MS Fakes を使用した TDD
私は TDD を試すつもりであり、そのための適切なツールを研究しています。職場では MS Fakes を使用しているため、変更せずに TDD で MS Fakes を使用しても問題ありません。しかし、私には深刻な問題が 1 つあります。MS Fakes はシナリオで使用することを意図しているように思えます: write code -> write unit test for it。MS Fakes を使用して TDD 中にインターフェイスをモックするにはどうすればよいですか?
たとえば、1つのファイルに次のコードがあります(リファクタリングは後で行われます)
私の TDD プロセスでは、すべてを 1 つのファイルにまとめてから、これをリファクタリングして別のアセンブリに移動します。しかし、この場所でインラインをモックする必要がありICustomerRepository customerRepository = null;
ます。たとえば、NSubstitute を使用すると簡単に実行できます。ただし、MS Fakes を使用する場合は、最初にこのインターフェイスを別のプロジェクトに移動し、単体テストが配置されているプロジェクトからこのプロジェクトを参照して、[Add Fake Assembly] をクリックする必要があります。これは非常に複雑なワークフローのように思われるため、TDD はそれほど迅速かつ効率的ではありません。これらの奇妙な操作をすべて行わずに、次のようなコードを配置したいと思います。
StubBase<>
抽象的ですが。それで、MS Fakesでそのようなことをする方法はありますか?
unit-testing - ASP.NETMVCコントローラーのプロパティのモック
Server.MapPath
リソースファイルをロードし、ファイルへのパスを取得するために使用するMVCコントローラーがあります。Microsoft Fakesフレームワークを使用してコントローラーオブジェクトのServerプロパティをモックアウトしたいと思います(他のフレームワークを使用してこれを行う方法を知っています)。
コードは次のとおりです。
私がモックアウトしようとしている部分は、「Server.MapPath」メソッドです。
visual-studio-2012 - FakesFrameworkシムを使用してVS2012で内部クラスをモック/分離する方法は?
したがって、問題は、テストするクラスによって使用される内部クラスがアセンブリに多数あることです。アクセサーはVS2012から削除されているので、使用[InternalsVisibleTo]
しても問題ありません。内部クラスをシミ化しようとした場合を除いて、Fakesフレームワークには表示されません。また、私が扱っている特定のクラスは静的メソッドを持つ静的クラスであり、組織内でそのレベルのリファクタリングに抵抗があるため、インターフェイスを使用する(およびスタブを使用する)ためにすべてをリファクタリングしたくないことにも注意してください。
(文字通り)すべてをインターフェースすることなく、これらの内部メンバーをVisual Studio 2012のシムコンテキストで使用できるようにする方法はありますか?
visual-studio-2012 - マシン単体テストのビルド
ソリューションにMicrosoft Fakes フレームワークを使用する単体テストが含まれている場合、TFS を介して自動ビルドを実行するための要件は何ですか?
現在、VS 2010 と .NET 4.0 で動作するビルド マシンがあります。VS 2012 Ultimate をインストールできることはわかっています。2010 ではなく VS 2012 をターゲットにするにはどうすればよいですか?
visual-studio-2012 - VS2012 Update 1 で Microsoft.Practices.EnterpriseLibrary.Logging の Fakes アセンブリを追加できない
VS2012 Update 1 をインストールした後、Microsoft.Practices.EnterpriseLibrary.Logging.dll
参照用の偽のアセンブリを作成できません。ただし、 のアセンブリを偽造しMicrosoft.Practices.EnterpriseLibrary.Commom.dll
、System.dll
その他は正常に作成します。私が見つけたこの問題の唯一の解決策は、VS2012 の Update 1 をアンインストールすることでした。状況は正常に戻りました。この問題は、ローカル マシンと tfs ビルド サーバーの両方で発生しました。
VS2012がエラーリストに表示するエラーは次のとおりです。
VS2012 Update 1 のバグだと思いますが、確認するプロパティが不足しているのではないでしょうか?
visual-studio-2012 - Fake フレームワークの動作モデル
Visual Studio 2010 では、Behaviors を使用して ASP.NET アプリケーションをテストする方法がありました。VS 2012 では、Fakes Framework にアップグレードされました。Fakesで同じことをどのように達成しますか?
"System.Web" の Fakes アセンブリを作成しても、"System.Web" の動作モデルは作成されません。Bhttpcontext
つまり、「System.Web.Behaviors」名前空間で「System.Web」アセンブリをほくろしたときにそこにあったオブジェクトが見つかりません。
visual-studio-2012 - VS 2012 Professionalでスタブ/シムコマンドを使用して単体テストメソッドを実行できますか?VS2012Ultimateで作成されたものですが
VS 2012 Ultimateで、スタブ/シムを使用して単体テストメソッドを作成しました。
VS 2012 Professionalでスタブ/シムコマンドを使用してテストメソッドを実行できますか?
visual-studio-2012 - StubObserver:スタブメソッドが正しいパラメーターで呼び出されているかどうかを確認するにはどうすればよいですか?
PeterProvostのこの記事を参照します。
VisualStudio2012の偽物-パート3-スタブの動作の観察
問題は、メソッドが定義されたパラメーターで呼び出されているかどうかを確認する方法と方法です。たとえば、そのようなもの:
visual-studio-2012 - 対 2012: Shims コンパイル
MSDN サイトで説明されているように、VS 2012 Ultimate でシムを作成しようとしています。
http://msdn.microsoft.com/en-us/library/hh549176.aspxを参照してください
しかし、テスト プロジェクトをコンパイルすると、出力に次のような情報が表示されます。
警告 : 一部のフェイクを生成できませんでした。詳細については、このファイルの Fakes 要素の Diagnostic 属性を「true」に設定し、プロジェクトを再構築してください。
この警告を解決するにはどうすればよいですか?
c# - Microsoft Fakesアセンブリを簡単に交換するにはどうすればよいですか?
Microsoft Fakesアセンブリをテストプロジェクトに追加するのは簡単です。参照セクションで親アセンブリを右クリックし、[Fakesアセンブリの追加]を選択するだけです。ただし、親アセンブリのパブリックインターフェイスが変更されると(新しいインターフェイス、新しいメソッド)、FakesAssemblyは古くなります。
親アセンブリをもう一度右クリックすると、「偽のアセンブリを置き換える」または「偽のアセンブリを更新する」が表示されますが、表示されるのは「偽のアセンブリを追加する」だけです。
偽物アセンブリがすでに追加されているときに「偽物アセンブリを追加」を選択すると、エラーが発生します。
すでに参照されている偽のアセンブリ。のFakesアセンブリはすでに参照リストにあります。.Fakes参照を削除して、再試行してください。
指示に従い、「偽のアセンブリを追加」を選択した後、同じエラーが発生します。
これは、Fakesディレクトリ(.fakes)にある対応するxmlファイルを削除することで解決できます。
したがって、偽のアセンブリを正常に更新する前に、2つのアイテム(偽のアセンブリと偽のxmlファイル)を手動で削除する必要があります。
これを行うためのより簡単またはより簡単な方法はありますか?