Size: a a a

StartAndroid Ru Testing

2018 August 07

W

WaterSmith in StartAndroid Ru Testing
при таймауте - тест тоже упадет
источник

НК

Николай Казаков in StartAndroid Ru Testing
эт даа
источник

W

WaterSmith in StartAndroid Ru Testing
в результате у тебя получится тест который то падает то срабатывает, и ни о чем тебе не говорит
источник

W

WaterSmith in StartAndroid Ru Testing
тест, должен четко тебе сигнализировать что в ТВОЕМ коде ошибка
источник

W

WaterSmith in StartAndroid Ru Testing
Николай Казаков
ну для примера есть метод который используя retrofit для получения данных с сервера (строка json), чтоб проверить его работу я должен подождать пока данные придут с сервера и сравнить пришедшие данные с константой в тесте, так?
тут тебе нужно замокать тот же ретрофит, таким образом, чтобы он вернул твоему методу нужные данные. Причем разные на разные кейсы:
1. Корректный JSON,
2. Ошибка 404 (500... другая, по вскусу),
3. Мусор/битый JSON
источник

НК

Николай Казаков in StartAndroid Ru Testing
тут еще момент такой что сразу же при получении данных с сервера они используются, т.е. сами по себе данные вряд ли получится сравнить с чем-то, наверное нужно  отслеживать вызов метода с этими данными
источник

W

WaterSmith in StartAndroid Ru Testing
Николай Казаков
тут еще момент такой что сразу же при получении данных с сервера они используются, т.е. сами по себе данные вряд ли получится сравнить с чем-то, наверное нужно  отслеживать вызов метода с этими данными
так не сравнивай, используются - хорошо, но что то же происходит с ними, вот то что происходит и тестируй.
источник

W

WaterSmith in StartAndroid Ru Testing
Например они складываются в БД - мокай БД, и проверяй, что код пытается класть в БД то что ты ему подсунул
источник

НК

Николай Казаков in StartAndroid Ru Testing
а если это метод авторизации, отправил логин, пароль, если вернулся код 200 вызывается другой метод без входных параметров, в этом случе просто проверяем что был вызван этот метод? достаточно такого теста будет?
источник

W

WaterSmith in StartAndroid Ru Testing
Николай Казаков
а если это метод авторизации, отправил логин, пароль, если вернулся код 200 вызывается другой метод без входных параметров, в этом случе просто проверяем что был вызван этот метод? достаточно такого теста будет?
1 тест: подсовываем код 200 - проверяем что вызвался нужный метод,
2 тест: подсовываем код 403 - проверяем что не вызвался метод.
источник

W

WaterSmith in StartAndroid Ru Testing
Творческое это занятие сценарии тестирования придумывать
источник

НК

Николай Казаков in StartAndroid Ru Testing
у меня если код 200 вызывается один Toast, если не 200 другой, я же Toast могу замокать и смотреть смотреть какой именно вызвался
источник

W

WaterSmith in StartAndroid Ru Testing
да
источник

W

WaterSmith in StartAndroid Ru Testing
именно так
источник

НК

Николай Казаков in StartAndroid Ru Testing
ок, спасибо огромное за беседу, узнал за 2 час а больше чем месяц гуглил ))
источник

W

WaterSmith in StartAndroid Ru Testing
Николай Казаков
у меня если код 200 вызывается один Toast, если не 200 другой, я же Toast могу замокать и смотреть смотреть какой именно вызвался
Кстати, по поводу мокирования статических методов. С этим будут проблемы. Один из вариантов решения - не использовать статические методы, оборачивать их в классы, и уже их мокать.
источник

НК

Николай Казаков in StartAndroid Ru Testing
Вот еще момент интересный, как быть если в тесте нужно подсунуть данные, которые возвращает private метод? В тесте when не видит этого метода, делать его public?
источник

W

WaterSmith in StartAndroid Ru Testing
не может быть такого
источник

W

WaterSmith in StartAndroid Ru Testing
точнее не должно
источник

W

WaterSmith in StartAndroid Ru Testing
приведи пример
источник