2016-03-24 64 views
0

我正在尋找一種方法來測試服務是否已在.Container範圍內解決。我的應用程序在啓動時啓動了一些「服務」,我想確保這些服務已經解決,而不會觸發它們被解決。Swinject測試已解決服務

回答

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) 
+0

更希望在功能或單元測試中以編程方式進行。我想測試一個服務是否已經啓動。 – MPiccinato

+0

添加了一個使用標誌進行單元測試的示例。 –

+0

標誌的使用可能不是你想要的...我現在只注意到你的要求。 –