Size: a a a

StartAndroid Ru Testing

2018 August 08

N

Nikolay in StartAndroid Ru Testing
а можно еще сначала писать тесты 🙂 и потом писать код 🙂
источник

W

WaterSmith in StartAndroid Ru Testing
Если ты не придерживаешься определенных правил, при написании кода, ты получаешь по рукам, при попытке его тестировать =)
источник

W

WaterSmith in StartAndroid Ru Testing
Nikolay
а можно еще сначала писать тесты 🙂 и потом писать код 🙂
Можно, но это делают какие-то Боги и мифические личности, у меня так не получается, и я таких людей не встречал.
источник

N

Nikolay in StartAndroid Ru Testing
WaterSmith
Можно, но это делают какие-то Боги и мифические личности, у меня так не получается, и я таких людей не встречал.
та ладно)) тут все зависит от юзкейса))
источник

N

Nikolay in StartAndroid Ru Testing
просто в андроиде это сложно делать)) НО возможно
источник

W

WaterSmith in StartAndroid Ru Testing
Николай Казаков
ну неужели чтоб протестирвоать метод надо его код переколбасить (все тосты вывести в отдельный класс) и кучу новых классов создать?
Ты вообще понял, как оборачивать статичные методы, чтобы они тестировались?
источник

НК

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

W

WaterSmith in StartAndroid Ru Testing
Смотри, допустим тост:
Toast.makeText(getApplicationContext(), 
  "Сообщние для тоста", Toast.LENGTH_SHORT).show();
источник

W

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

W

WaterSmith in StartAndroid Ru Testing
Затем ты у себя в коде, там где тебе нужно выводить тосты, берешь объект myToaster.showToast("Сообщение");
источник

W

WaterSmith in StartAndroid Ru Testing
А в тесте, ты объект Toaster - мокаешь
источник

НК

Николай Казаков in StartAndroid Ru Testing
ну я примерно так и предполагал, вот это и вызвало недоуменение. Для того чтобы протестировать метод с Тостом надо создать класс, оправдано ли это? Тем более если я замокаю Toaster при выполнении теста он же все равно натолкнется на Toast.makeText()
источник

W

WaterSmith in StartAndroid Ru Testing
Николай Казаков
ну я примерно так и предполагал, вот это и вызвало недоуменение. Для того чтобы протестировать метод с Тостом надо создать класс, оправдано ли это? Тем более если я замокаю Toaster при выполнении теста он же все равно натолкнется на Toast.makeText()
нет, не натолкнется
источник

W

WaterSmith in StartAndroid Ru Testing
он его вообще не вызовет
источник

W

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

W

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

W

WaterSmith in StartAndroid Ru Testing
и всё, без изменения другого кода у тебя изменится функционал
источник

НК

Николай Казаков in StartAndroid Ru Testing
Да согласен в этом есть смысл, надо еще подумать будет.
источник

НК

Николай Казаков in StartAndroid Ru Testing
допускается использовать такую конструкцию?
источник

НК

Николай Казаков in StartAndroid Ru Testing
when(mockActivity.getFragmentManager().findFragmentByTag(anyString())).thenReturn(mockFragment);
источник