Модульное тестирование в SwiftUI - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь написать модульные тесты для представлений SwiftUI, но не могу найти в Интернете никаких ресурсов, как это сделать.

У меня есть вид, подобный следующему

struct Page: View {
@EnvironmentObject var service: Service

var body: some View {
    NavigationView {
        ScrollView(.vertical) {
            VStack {
                Text("Some text"))
                    .font(.body)
                    .navigationBarTitle(Text("Title")))

                Spacer(minLength: 100)
            }
        }
   }
}
}

Я начал писать такой тест

func testPage() {
    let page = Page().environmentObject(Service())
    let body = page.body
    XCTAssertNotNil(body, "Did not find body")
}

Но тогда как мне получить виды внутри тела? Как мне проверить их свойства? Любая помощь приветствуется.

Обновление : На самом деле даже это не работает. Я получаю следующее исключение времени выполнения

Thread 1: Fatal error: body() should not be called on  ModifiedContent<Page,_EnvironmentKeyWritingModifier<Optional<Service>>>.

1 Ответ

0 голосов
/ 04 октября 2019

Пока Apple

а) не разработает тестируемость в SwiftUI, и

б) не представит нам эту тестируемость,

мы облажались и должны будем использовать пользовательский интерфейсТестирование вместо модульного тестирования ... в полной инверсии Тестовой пирамиды.

...