Swinject Testing解决了服务问题

时间:2016-03-24 18:38:10

标签: swift swinject

我正在寻找一种方法来测试服务是否已在.Container范围内解析。我的应用程序在启动时激活了一些“服务”,我想确保这些服务已经解决,而不会触发它们被解决。

1 个答案:

答案 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)