- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在为我的 IOC 编写单元测试。我的接口(interface)之一注入(inject)了 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) 我是否应该在单元测试中使用 RegisterAs<>() 模拟容器上的 IServerEvents
C) 为什么注入(inject)工作正常但 container.Resolve() 失败。
欢迎任何反馈。
最佳答案
您不能在单元测试中使用 ServerEventsFeature
,您只能在 integration test 中使用它.您可以在 ServerEventTests 中找到一些工作示例.
由于ServerEventsFeature
是一个插件,需要注册为插件才能运行:
Plugins.Add(new ServerEventsFeature { ... });
插件注册后会register the MemoryServerEvents
dependency :
container.Register<IServerEvents>(memoryServerEvents);
关于c# - IServerSideEvents 的 IOC 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54406393/
扩展于: IOC injection of IServerSideEvents 我正在尝试在需要 IServerSideEvents 的容器上设置单例(IMessager 具有依赖性)。 // se
我正在为我的 IOC 编写单元测试。我的接口(interface)之一注入(inject)了 IServerEvents。 我通过以下方式包括事件: ServerEventsFeature ser
我是一名优秀的程序员,十分优秀!