Pull to refresh

Comments 16

Супер, спасибо за крутой инструмент!
Мы в Райффайзен Банке как раз планируем на него подсесть. Как раз переводим тесты с Appium на нативные, по этому сложно было проголосовать в первом вопросе опросника)

Зачем вообще нужен любой сторонний фреймворк при работе с adb? Что там происходит такого, чего я не могу сделать сам, используюя только adb?

посмотрите видео, пожалуйста
там раскрывается этот вопрос

Ненавижу видео. Можно раскрыть его здесь? Чтобы я мог задавать уточняющие вопросы, чтобы мог использовать поиск, чтобы мог цитировать.

Например вы не можешь скачать что-то с компьютера (например, с помощью adb, что было бы логично) находясь внутри Espresso тестов.
Почему? Да потому что во время прогона тестов, ваша тестовая apk понятия не имеет о внешнем мире и вообще не в курсе подключена она к какому-то компьютеру или нет.

Вы не можете менять показания датчиков/сенсоров на эмуляторе — потому что это закрытая вещь, к которой доступ строго через adb/telnet
Именно поэтому пришлось создавать AdbServer.

Ненавижу писать комментарии, тут одно пустословие — лучше взгляните код и поймете что к чему, его скомпилировать можно и посмотреть что он делает. А также подправить если вам покажется что-то не так.
Я же спросил
Что там происходит такого, чего я не могу сделать сам, используюя только adb?

Всё названное я могу делать, используя только adb. И даже могу пинать через него своё espresso приложение, дёргая нужные прямо сейчас классы.

А ответ мне даётся на какой-то другой вопрос, который я, вроде, не задавал.
Здесь какое-то непонимание того, для чего вообще AdbServer создавался. Это не замена adb — это и есть adb, поэтому разумеется вы можете делать все то же самое с помощью adb — поскольку это оно и есть.

Идея была в том, чтобы во время тестов вызывать нужные adb команды непосредственно из самих тестов. Нужно посередине теста файл на устройство скинуть? — дошли в тесте до нужно экрана и скинули.

Обычными средствами из самого теста вы не сможете пользоваться adb
v1sar — автор концепции, он отлично все распишет.
но реально, в видео все рассказываем
никто не мешает делать цитаты оттуда и уже более предметно пообщаться
подскажите плиз, а как протестировать нажатие на пункт recylerview?
Создаешь обьект KRecyclerView.

val recycler: KRecyclerView = KRecyclerView({
        withId(R.id.typeValues)
    }, itemTypeBuilder = {
        itemType(ParamsScreen::Item)
    })

    class Item(parent: Matcher<View>) : KRecyclerItem<TerminalSimpleItemAdapter.DescriptionItem<OrderType>>(parent)



Далее работаешь также как и с остальными объектами экрана

recycler {
    childAt<ParamsScreen.Item>(1) {
        click()
    }
}
@Test
fun espressoTest() {
    onView(allOf(allOf(withId(R.id.espresso),
        isDescendantOfA(withId(R.id.coffee_variates))),
        isDescendantOfA(withId(R.id.content))))
        .check(matches(withEffectiveVisibility(View.VISIBLE)))
}

Никогда не понимал, зачемписатьвоттак? Допробелаленьдотянуться?
Only those users with full accounts are able to leave comments. Log in, please.

Information

Founded
Location
Россия
Website
www.kaspersky.ru
Employees
1,001–5,000 employees
Registered