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
有没有人能解决这个问题,或者你只是为这些课程编写测试? - 这是子弹!我知道跳过测试是不好的,但我快要放弃尝试了。