Подтвердить что ты не робот

Издевательская структура в приложениях UWP

Мне кажется, что все хорошие Mocking-инфраструктуры (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-indication-that-windows-10-uwp-universal-applications-will-support-code-emitting?forum=wpdevelop

Есть ли какая-либо Mocking-инфраструктура для Unittesting UWP-приложений? Или какие-либо идеи, если поддержка Dynamic Proxy будет в любое время в ближайшее время для UWP?

Спасибо!

4b9b3361

Ответ 1

Мы (Microsoft BigPark Studio) только что выпустили макет фреймворка, который совместим с UWP,.NetCore и .Net Framework (Nuget Etg.SimpleStubs). Фреймворк использует Roslyn для создания заглушек.

Чтобы обойти ограничение Reflection.Emit в UWP, среда генерирует заглушки во время компиляции. Заглушки генерируются и компилируются за один шаг (во время сборки). Если вы когда-либо использовали VS Fakes, опыт очень похож.

SimpleStubs является открытым исходным кодом и доступен как NuGet:

Документы: https://github.com/Microsoft/SimpleStubs

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

Ответ 2

В настоящее время существует инфраструктура под названием HyperMock, которая выполняет насмешку аналогично другим платформам на платформе .NET.

Посетите HyperMock

Поскольку это доступно через Nuget, вы можете найти его через диспетчер пакетов с помощью HyperMock.Universal или установить его с помощью консоли пакета

Install-Package HyperMock.Universal

Используйте универсальную версию для проектов UWP.