問題タブ [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 フレームワーク
NMock と VS 2011 Fakes Framework のような Mock フレームワークの違いについて少し混乱しています。MSDN を調べてみると、Fakes を使用すると RhinoMock や NMock と同じように依存関係をモックできますが、アプローチは異なります。Fakes はこの機能を実現するコードを生成しますが、Mocks フレームワークは生成しません。私の理解は正しいですか?Fakes は単なる別のモック フレームワークですか
moles - ファイル licenses.licx を使用したほくろとライセンス
モグラとファイル licenses.licx に問題があります。インターネットで検索しましたが、役立つ答えが見つかりませんでした。
問題は、ファイル licenses.licx に保存されているライセンス キーを必要とするライセンスを受けたサード パーティ製品ライブラリを使用していることです。この製品ライブラリを Product.dll と呼びましょう。
このファイルは、ライセンスされた Product.dll を参照するプロジェクトの Properties フォルダーに保存されています。このプロジェクトを Proj1 としましょう。
次に、プロジェクト Proj1 とライブラリ Product.dll を参照する unittest プロジェクト (Proj1.UnitTest) があります。次に、両方のモル アセンブリを追加するため、Proj1.Moles と Product.Moles を参照しています。
属性 [HostType("Moles")] を指定せずに Proj1 または Product からメソッドのテストを実行すると、テストは問題なくパスします。
しかし、任意のメソッドをモール化する必要があり、属性 [HostType("Moles")] を指定してテスト メソッドを実行すると、Product からメソッドが呼び出されるたびにライセンス ダイアログが表示されます。これにより、単体テストができなくなります。
この問題を教えてください。
Pex と Moles の Web ページで、それらが MS VS 11 の一部になることを読みました。
MS VS 11 への統合を除いて、開発やバグ修正に進展はありますか? 最新のリリースは非常に古いため、2010 年 11 月 1 日からの 0.94.51023.0 です。
回答ありがとうございます。
よろしく
1月
microsoft-fakes - Microsoft Fakes でモッキング機能を利用できますか?
Visual Studio 11 に Microsoft Fakes が含まれているため、もう一度調べてみる価値があると思いました。前回確認した Moles が十分に成熟しているとは思えなかったからです。ドキュメントはまだまばらですが、モックへの参照、つまり、偽造されたオブジェクトに対する期待を設定および検証する機能を見つけることができません。
これが現在(ライブラリの機能として)含まれているのか、それとも含まれる予定なのか、誰にもわかりませんか?
unit-testing - Microsoft Fakes (ベータ) スタブ/シムが呼び出されたことを確認するにはどうすればよいですか (Rhino Mocks の AssertWasCalled など)。
Visual Studio 11 で Microsoft Fakes のベータ版を使用しています。依存関係のメソッドがテスト対象のシステムによって呼び出されたことを確認するにはどうすればよいですか?
c# - Ms Fakes フレームワーク、NotSupportedException
このコードが演算子で ShimNotSupportedException をスローするのはなぜですか?
c# - VS 2012 Professional RC でフェイク アセンブリを追加するにはどうすればよいですか?
VS 2012 と Microsoft Fakes Test Framework に関する以下の 2 つの記事によると、テスト プロジェクトの参照でアセンブリを右クリックし、[Add Fakes Assembly] を選択して Visual Studio 11 で新しい Microsoft Fakes Framework アセンブリを作成できるはずです。 2012.ただし、VS 2012 RC Professional のコンテキスト メニュー項目が本来あるべき場所に見つかりません。Microsoft.QualityTools.Testing.Fakes アセンブリを参照する必要があるかもしれませんが、参照の追加検索でも見つかりません。必要なメニューはベータ版から変更されましたか? 拡張機能をインストールする必要がありますか?
VS 2012 Professional RC でフェイク アセンブリを追加するにはどうすればよいですか?
参考にした記事:
visual-studio-2010 - Microsoft Fakes は Visual Studio 2010 で使用できますか?
Visual Studio 2010 Professional を使用している開発者と、Visual Studio 2012 を試している開発者がいます。2 つのバージョン間のプロジェクトの互換性は良好です。
単体テスト用に新しい Fakes Framework を導入した場合、Visual Studio プロジェクトは引き続き 2010 と互換性がありますか?
c# - MS VisualStudio 2012 での ShimNotSupportedException
私は Visual Studio 2012 RC の新しい Fakes Isolation Framework に慣れようとしていますが、結果としてShimNotSupportedException
s の問題に直面しています。
最初の試行で、デリゲートを接続しようとした各単一の shim メソッドはShimNotSupportedException
、テストを実行/デバッグしようとしたときにスローされました。
これは、対応するスタック トレースです。
GetFoo_ValidBar_ReturnsBaz テスト メソッドが例外をスローしました。 Testing.Fakes.UnitTestIsolation.UnitTestIsolationRuntime.OnAttachedUnsupportedMethod(MethodBase メソッド) Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationRuntime.CheckInstrumentation(MethodBase メソッド) Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationRuntime.InternalAttachDetour(Object optionalReceiver, MethodBase)メソッド、デリゲート detourDelegate) で Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationRuntime.AttachDetour(Object optionalReceiver,MethodBase メソッド、デリゲート detourDelegate) の Microsoft.QualityTools.Testing.Fakes.Shims.ShimRuntime.SetShimMethod(デリゲート optionalStub、オブジェクト optionalReceiver、MethodBase メソッド) Microsoft.QualityTools.Testing.Fakes.Shims.ShimRuntime.SetShim(デリゲート optionalStub、タイプ receiverType 、オブジェクト optionalReceiver、文字列名、ShimBinding フラグ、型 returnType、Type[] parameterTypes) Microsoft.QualityTools.Testing.Fakes.Shims.ShimRuntime.SetShimPublicStatic (デリゲート optionalStub、型 receiverType、文字列名、型 returnType、Type[] parameterTypes) BazTests.cs の GetFoo_ValidBar_ReturnsBaz() で System.Fakes.ShimDateTime.set_NowGet(Func'1 value): 48 行目。MethodBase メソッド) の Microsoft.QualityTools.Testing.Fakes.Shims.ShimRuntime.SetShim (デリゲート optionalStub、Type receiverType、Object optionalReceiver、String name、ShimBinding flags、Type returnType、Type[] parameterTypes) Microsoft.QualityTools.Testing.Fakes で。 Shims.ShimRuntime.SetShimPublicStatic(Delegate optionalStub, Type receiverType, String name, Type returnType, Type[] parameterTypes) at System.Fakes.ShimDateTime.set_NowGet(Func'1 value) at GetFoo_ValidBar_ReturnsBaz() in BazTests.cs: 48 行目。MethodBase メソッド) の Microsoft.QualityTools.Testing.Fakes.Shims.ShimRuntime.SetShim (デリゲート optionalStub、Type receiverType、Object optionalReceiver、String name、ShimBinding flags、Type returnType、Type[] parameterTypes) Microsoft.QualityTools.Testing.Fakes で。 Shims.ShimRuntime.SetShimPublicStatic(Delegate optionalStub, Type receiverType, String name, Type returnType, Type[] parameterTypes) at System.Fakes.ShimDateTime.set_NowGet(Func'1 value) at GetFoo_ValidBar_ReturnsBaz() in BazTests.cs: 48 行目。BazTests.cs の GetFoo_ValidBar_ReturnsBaz() の System.Fakes.ShimDateTime.set_NowGet(Func'1 value) で、receiverType、String name、Type returnType、Type[] parameterTypes) を入力します: 48 行目。BazTests.cs の GetFoo_ValidBar_ReturnsBaz() の System.Fakes.ShimDateTime.set_NowGet(Func'1 value) で、receiverType、String name、Type returnType、Type[] parameterTypes) を入力します: 48 行目。
この問題を扱っている MSDN で見つけた 2 つのスレッドを読んだ後、彼らの指示 (CodeCoverage をオフにし、.testsettings ファイルを削除する) に従いましたが、うまくいきませんでした!
それにもかかわらず、私はこの問題の回避策を見つけました:
最初にテスト エクスプローラーからすべてのテストを実行すると (コーディング領域から直接 [MSTest テスト (クリックして実行)] ボタンを使用する代わりに)、すべてが正しく機能し、例外はスローされませんでした。その後、テストをデバッグすることもでき、shim メソッドへの割り当ては期待どおりに機能しました。
これは、私が使用した以下のすべてのシムでも機能しました。
しかし、データベース アクセス用に MS Enterprise Library の偽物を実装しようとすると、同じ問題が再び発生します。
テストは次のようになります。
最初の 2 つの shim 割り当て (ShimFoo と ShimQux) は期待どおりに機能しています。しかし、ShimDatabaseFactory.CreateDatabaseString (新しいデータベース インスタンスを作成しようとすると、DatabaseFactory.CreateDatabase(string) がスタブ データベースを返すようにするはずです) は、ShimNotSupportedException を再度スローします。そして、私はその理由を理解できません!
ここで何がうまくいかなかったのか、何か考えはありますか?
これに関するご意見をいただければ幸いです。
ありがとう、
ベンジャミン
c# - Microsoft Fakes Shim を使用してクラスのコンストラクターを分離 (迂回) する方法は?
クラスのコンストラクターを Microsoft Fakes で分離/置換する可能性はありますか?
Mole (Fakes の前身) の例が見つかりました: http://thecurlybrace.blogspot.co.at/2011/11/how-do-i-detour-mole-type-constructor.html
私はこのような構造を試しました
しかし、getアクセサーが欠落していると書かれています。明確にするために、次のようなものを置き換えるとよいでしょう
このような静的入力で
Read、ReadLineなどをモックする必要がないように.
visual-studio-2010 - Visual Studio 2012 で Moles をコンパイルすると、「型または名前空間 xxxx が存在しません」というエラーが表示される
Visual Studio 2010 で開発された既存のプロジェクト (.NET4 をターゲット) をコンパイルしようとしています。現在、VS2012 への移行をテストしています。
既存のプロジェクトをモルでコンパイルすると、次のエラーが頻繁に発生します。
型または名前空間名 'Claim' が名前空間 'System.Security.Claims' に存在しません (アセンブリ参照がありませんか?) [C:\ProjectPath\Project.Tests.Unit\obj\Debug\Moles\m\ mgcsproj] C:\ProjectPath\Project.Tests.Unit\mgcs
このメッセージを表示するさまざまなタイプの膨大なリストがあります。
何かご意見は?