При тестировании не удается импортировать подчиненную зависимость - @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 ответ

Воссоздание цели тестирования, похоже, помогло мне.

Просто удалите старую цель тестирования, создайте новую и добавьте эту цель ко всем имеющимся файлам тестирования.

Другие вопросы по тегам