При тестировании не удается импортировать подчиненную зависимость - @testable import SubModule - Использование необъявленного типа InternalSubModuleType
У меня есть модульный тест, который требует доступа к внутренним методам / свойствам модуля, импортированного моей целью приложения.
Например
SubModule.swift
public class SubModuleType {
...
internal let value: InternalSubModuleType
...
}
AppViewController.swift
import SubModule
// do things with SubModuleType
AppViewControllerTests.swift
@testable import App
@testable import SubModule
func testWithSubModule() {
let internalSubModuleTypeInstance = SubModule.SubModuleType().value
// ... run a test dependent on internalSubModuleTypeInstance
}
В этом тесте я получаю 'Использование необъявленного типа'InternalSubModuleType'' при доступе .value
,
- Я добавил
SubModule
цель дляApp-Tests
"Целевые зависимости" - Я установил "Включить тестируемость" на YES для цели App и SubModule для схемы, которую я компилирую для тестирования.
@testable import
должен разрешать вам доступ к типам, помеченным как внутренние при этих условиях. Я не уверен, почему я получаю эту ошибку компилятора. Я все еще могу использовать любой тип, который помечен как внутренний в моей цели приложения с помощью @testable
но не моя цель SubModule.
Вам разрешено только 1 цель @testable import
в тестовой мишени или мне чего-то не хватает?
используя Xcode 9, Swift 3.2
1 ответ
Воссоздание цели тестирования, похоже, помогло мне.
Просто удалите старую цель тестирования, создайте новую и добавьте эту цель ко всем имеющимся файлам тестирования.