web-dev-qa-db-ja.com

UWPアプリのモックフレームワーク

UWPアプリをユニットテストするための優れたモックフレームワークを見つけようとしていますが、すべての優れたモックインフラストラクチャ(MOQ、RhinoMocksなど)は、当然のことながら、UWPでサポートされていない動的プロキシに依存しているようです。

MOQはこの制限を知っているようです: https://github.com/Moq/moq4/issues/195

そして、Microsoftはこの状況ではあまり役に立ちません: https://social.msdn.Microsoft.com/Forums/en-US/652b9d16-c4ab-401c-9239-0af01108e460/uwp-is-there-any-表示-その-windows-10-uwp-universal-applications-will-support-code-missive?forum = wpdevelop

UWPアプリを単体テストするためのモックインフラストラクチャはありますか?または、ダイナミックプロキシのサポートが近い将来UWPで提供される予定がある場合は、何かアイデアはありますか?

ありがとう!

27
Scott Henry

私たち(Microsoft BigPark Studio)は、UWP、.NetCore、および.Net Framework(Nuget Etg.SimpleStubs)と互換性のあるモックフレームワークをリリースしました。フレームワークはRoslynを使用してスタブを生成します。

UWPのReflection.Emit制限を回避するために、フレームワークはコンパイル時にスタブを生成します。スタブは、1つのステップ(ビルド中)で生成およびコンパイルされます。 VSフェイクを使用したことがある場合、エクスペリエンスは非常に似ています。

SimpleStubsはオープンソースであり、NuGetとして利用できます。

ドキュメント: https://github.com/Microsoft/SimpleStubs

NuGet: https://www.nuget.org/packages/SimpleStubs/

11
nbilal

現在、.NETプラットフォーム上の他のフレームワークと同様の方法でモックを実行するHyperMockと呼ばれるフレームワークがあります。

訪問 HyperMock

これはNugetから入手できるため、HyperMock.Universalを使用してパッケージマネージャーから見つけるか、パッケージコンソールからインストールできます。

Install-Package HyperMock.Universal

UWPプロジェクトにはユニバーサルバージョンを使用してください。

6
Steve