我正在寻找一种方法来测试服务是否已在.Container范围内解析。我的应用程序在启动时激活了一些“服务”,我想确保这些服务已经解决,而不会触发它们被解决。
答案 0 :(得分:0)
您可以在工厂关闭中添加日志记录,以检查Swinject容器是否已解析该类型。
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)