Swift Swinject测试解决服务
我正在寻找一种方法来测试服务是否已在.Container范围内得到解决。我的应用程序在启动时启动了一些“服务”,我希望确保这些服务已被解析,而不会触发它们被解析。您可以在工厂关闭中添加日志记录,以检查容器是否已解析该类型Swift Swinject测试解决服务,swift,swinject,Swift,Swinject,我正在寻找一种方法来测试服务是否已在.Container范围内得到解决。我的应用程序在启动时启动了一些“服务”,我希望确保这些服务已被解析,而不会触发它们被解析。您可以在工厂关闭中添加日志记录,以检查容器是否已解析该类型 container.register(AnimalType.self) { _ in // You can log here. print("AnimalType is being resolved to Cat.") return Ca
container.register(AnimalType.self) { _ in
// You can log here.
print("AnimalType is being resolved to Cat.")
return Cat()
}
.inObjectScope(.Container)
编辑
也可以使用标志签入单元测试
var initialized = false
container.register(AnimalType.self) { _ in
// You can check this parameter later in your unit test.
initialized = true
return Cat()
}
.inObjectScope(.Container)
XCTAssertFalse(initialized)
container.resolve(AnimalType.self)
XCTAssertTrue(initialized)
更重要的是,我们希望在函数测试或单元测试中以编程的方式完成它。我想测试服务是否已初始化。标志用法可能不是您想要的。。。我刚刚注意到你的要求。我现在可以用这样的东西。我正在浏览源代码,试图找出如何运行这种测试,但Xcode和@testable的表现并不太好。