Я пишу юнит-тесты для своего МОК.Один из моих интерфейсов внедряет IServerEvents.
Я включаю события через:
ServerEventsFeature serverEventsFeature = new ServerEventsFeature()
{
LimitToAuthenticatedUsers = false,
NotifyChannelOfSubscriptions = false,
OnConnect = (eventSubscription, dictionary) =>
{
},
OnSubscribe = (eventSubscription) =>
{
}
};
Однако container.Resolve выдает следующую ошибку при отладке (не с помощью модульных тестов):
'container.Resolve<IServerEvents>()' threw an exception of type 'System.Exception'
Data: {System.Collections.ListDictionaryInternal}
HResult: -2146233088
HelpLink: null
InnerException: {System.InvalidOperationException: No service for type 'ServiceStack.IServerEvents' has been registered.
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at Funq.Container.ResolveImpl[TService](String name, Boolean throwIfMissing)}
Message: "Error trying to resolve Service 'ServiceStack.IServerEvents' or one of its autowired dependencies (see inner exception for details)."
Source: "ServiceStack"
StackTrace: " at Funq.Container.ResolveImpl[TService](String name, Boolean throwIfMissing)"
TargetSite: {TService ResolveImpl[TService](System.String, Boolean)}
Это делаетработать в обычном режиме, но ручное разрешение интерфейса не работает.
Что мне интересно, так это:
A) правильный способ для модульного тестирования этой интеграции событий сервера
B) Должен ли я просто насмехаться над IServerEvents на контейнере с помощью RegisterAs <> () в модульных тестах
C) Почему инъекция работает нормально, но container.Resolve () завершается неудачно.
Любые отзывы приветствуются.