Как изменить текущую коллекцию traitCollection динамического UIColor, загруженную из .xcassets в XCTest?

Я хотел бы запустить модульные тесты с динамическими цветами, которые загружаются из файла .xcassets. Эти цвета имеют светлые и темные проявления. Для моего теста мне нужно прочитать значения RGB как светлых, так и темных значений. Я всегда вижу только облегченную версию. Это имеет смысл, потому что отладчик всегда показывает мне эту коллекцию traitCollection: ‹UITraitCollection: 0x6000034b8820; UserInterfaceIdiom = Phone, DisplayScale = 3, DisplayGamut = P3, HorizontalSizeClass = Compact, VerticalSizeClass = Regular, UserInterfaceStyle = Light, UserInterfaceLayoutDirection = LTR, ForceTouchCapability = Unreachable, PreferredContentSizeCategory = L, AccessibilityContrast = Normal, UserInterfaceLevel = Base›

Как я могу изменить его для этого теста? Как установить для UserInterfaceStyle значение Dark? (Это обычный XCTest, а не XCUITest.)

Это настоящий тест:

func compare(_ color1: UIColor, _ name: String) {
    let color2 = UIColor(named: name)!
    XCTAssert(color1.cgColor == color2.cgColor)
}

Аналогичный вопрос 5 лет назад предлагал только XCUITest как единственную альтернативу: Как тестировать язык с написанием справа налево в модульных тестах XCTest для iOS? Но это было до того, как появились traitCollections, верно?


person Mick    schedule 08.01.2021    source источник