不幸的是,某些库只具有静态方法。是否可以使Swinject注册类型以返回类型而不是类型的实例?很难仅存静态库进行测试。
答案 0 :(得分:0)
在当前状态下,这是不可能的。解决此问题的方法之一是创建自定义类型提供程序:
protocol LibraryProtocol {}
class Library: LibraryProtocol {}
class LibraryProvider {
let library: LibraryProtocol.Type
init(_ library: LibraryProtocol.Type) { self.library = library }
}
container.register(LibraryProvider.self) { _ in LibraryProvider(Library.self) }