Я использую инфраструктуру Espresso для своих UI-тестов, и теперь я хочу использовать Kakao. У меня есть MainPage с некоторым представлением, и это представление можно найти следующим образом:
class MainPage() {
val screenTitle =
CoreMatchers.allOf(
withText("Main page"),
withParent(withId(R.id.mediaViewToolbar))
)
}
В тестовом случае Espresso эти строки работают без проблем
val mainPage = MainPage()
onView(mainPage.screenTitle).check(matches(isDisplayed()))
Затем я попытался переписать этоMainPage с его видом в стиле Kakao:
class MainScreen : Screen<MainScreen>() {
// here i faced a problem
val screenTitle = KBaseView<Matcher<View>>{ // this 2-nd line* is refferenced by error
CoreMatchers.allOf(
ViewMatchers.withText("Main page"),
ViewMatchers.withParent(ViewMatchers.withId(R.id.mediaViewToolbar))
)
}
}
И если попытаться написать тестовый пример в стиле Kakao
val mainScreen = MainScreen()
mainScreen {
screenTitle {
isDisplayed()
}
}
Тогда я получаю следующую ошибку:
E/TestRunner: failed: should_check_main_page(com.project.online.MainScreenKaspressoTest)
----- begin exception -----
java.lang.IllegalStateException: No matchers inside InteractionBuilder
at com.agoda.kakao.common.builders.ViewBuilder.getViewInteractionDelegate(ViewBuilder.kt:395)
at com.agoda.kakao.common.views.KBaseView.<init>(KBaseView.kt:42)
at com.project.online.MainScreen.<init>(MainScreen.kt:2)* - 2-nd line
Я понимаю, что я указываю screenTitle
в MainScreen неправильно, но как правильно? Спасибо!