Swift Swinject测试解决服务

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范围内得到解决。我的应用程序在启动时启动了一些“服务”,我希望确保这些服务已被解析,而不会触发它们被解析。

您可以在工厂关闭中添加日志记录,以检查容器是否已解析该类型

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的表现并不太好。