0
我正在尋找一種方法來測試服務是否已在.Container範圍內解決。我的應用程序在啓動時啓動了一些「服務」,我想確保這些服務已經解決,而不會觸發它們被解決。Swinject測試已解決服務
我正在尋找一種方法來測試服務是否已在.Container範圍內解決。我的應用程序在啓動時啓動了一些「服務」,我想確保這些服務已經解決,而不會觸發它們被解決。Swinject測試已解決服務
您可以在工廠關閉中添加日誌記錄以檢查該類型是否已由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)
更希望在功能或單元測試中以編程方式進行。我想測試一個服務是否已經啓動。 – MPiccinato
添加了一個使用標誌進行單元測試的示例。 –
標誌的使用可能不是你想要的...我現在只注意到你的要求。 –