Microsoft.Extensions.DependencyInjection - подделка типа реализации - PullRequest
0 голосов
/ 10 апреля 2019

Мы используем Microsoft.Extensions.DependencyInjection в нашем приложении Xamarin Forms. Страницы (Content Pages) зарегистрированы с временной областью и разрешены для использования в службе навигации. Все работает хорошо, однако у нас есть проблема в модульном тестировании.

Из-за проблемы с FFImageLoading, страница не может быть решена в модульном тесте. Об этом сообщается в ссылке ниже (помечено как закрытое, но не работает).

https://github.com/luberda-molinet/FFImageLoading/issues/1143

В результате мы не можем протестировать любой метод View Model, который разрешает любую страницу.

То, что мы хотим в нашем модульном тестовом примере, - это макетировать все страницы с помощью фиктивной страницы, не использующей FFImageLoading, чтобы мы могли проверить логику модели представления (нас не волнует навигация в тестовом примере), то есть ниже. вызов должен вернуть макет страницы:

ServiceProvider.GetService<TService>()

Как зарегистрировать BaseContentPage в качестве типа реализации для всех страниц содержимого в тестовом проекте? Или же мы можем внедрить саму реализацию DI, чтобы фактический DI заменялся на фиктивный DI в тестовом проекте?

...