2016-03-24 7 views
0

Ich bin auf der Suche nach einer Möglichkeit zu testen, ob ein Service bereits im Gültigkeitsbereich .Container aufgelöst wurde. Meine Anwendung startet beim Start einige "Dienste" und ich wollte sicherstellen, dass diese Dienste gelöst wurden, ohne dass sie ausgelöst werden.Swinject Test aufgelöster Service

Antwort

0

Sie können die Protokollierung der Werksschließung hinzufügen, um zu prüfen, ob der Typ bereits vom Container Swinject aufgelöst wurde.

container.register(AnimalType.self) { _ in   
    // You can log here. 
    print("AnimalType is being resolved to Cat.") 
    return Cat() 
} 
.inObjectScope(.Container) 

EDIT

Oder Sie einen Flag verwenden können, in Ihrem Gerät zu testen prüfen.

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

Mehr so, um es programmatisch in funktionalen oder Unit-Tests zu tun. Ich würde gerne testen, ob ein Service initiert wurde. – MPiccinato

+0

Ein Beispiel hinzugefügt, um ein Flag für Komponententests zu verwenden. –

+0

Die Flag-Nutzung ist möglicherweise nicht das, was Sie wollen ... Ich habe gerade Ihre Anforderung bemerkt. –