0

サービスが .Container スコープで既に解決されているかどうかをテストする方法を探しています。私のアプリケーションは、起動時にいくつかの「サービス」を起動します。これらのサービスが解決されることをトリガーせずに、それらのサービスが解決されていることを確認したかったのです。

4

1 に答える 1

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)
于 2016-03-25T04:23:34.457 に答える