Как написать модульный тест для кода, который использует методы расширения IOwinContext - PullRequest
0 голосов
/ 05 июня 2018

IdentityServer3 имеет много методов расширения, которые приятно иметь.Проблема возникает при попытке выполнить модульное тестирование кода, который имеет некоторые из этих вызовов метода расширения IOwinContext, таких как: GetIdentityServerHost (), GetIdentityServerBasePath () и т. Д. Из этого class .

Даже после насмешки HttpContextи будучи в состоянии получить экземпляр OwinContext, я все еще получаю ошибки, потому что, поскольку все является фиктивным, поэтому внутренние зависимости (например, основанные на Autofac) не разрешены.

Ниже приведена ошибка модульного теста:

System.ArgumentNullException : Value cannot be null.
Parameter name: context
   at Autofac.ResolutionExtensions.ResolveOptionalService(IComponentContext context, Service service, IEnumerable'1 parameters) in c:\ballen\github\identity\IdSrv3\IdentityServer3\source\Core\Internal\AntiXssLibrary\UnicodeCharacterEncoder.cs:line 0
   at IdentityServer3.Core.Extensions.InternalOwinExtensions.ResolveDependency(IOwinContext context, Type type) in c:\ballen\github\identity\IdSrv3\IdentityServer3\source\Core\Extensions\InternalOwinExtensions.cs:line 78
   at IdentityServer3.Core.Extensions.InternalOwinExtensions.ResolveDependency[T](IOwinContext context) in c:\ballen\github\identity\IdSrv3\IdentityServer3\source\Core\Extensions\InternalOwinExtensions.cs:line 70
   at IdentityServer3.Core.Extensions.OwinEnvironmentExtensions.GetIdentityServerIssuerUri(IDictionary'2 env) in c:\ballen\github\identity\IdSrv3\IdentityServer3\source\Core\Extensions\OwinEnvironmentExtensions.cs:line 672

Кто-нибудь справился с этим, или вы просто пропустили письменный тест для таких классов? - А вот и пули!Я знаю, что пропускать тесты плохо, но я нахожусь на грани отказа от попыток.

...