Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

JUnit. Подходит ли для автоматизации Android-приложений?

junit
android
java
Теги: #<Tag:0x00007f7b7055b3b8> #<Tag:0x00007f7b7055b228> #<Tag:0x00007f7b7055b0e8>

(Maria Ivanova) #1

Привет. Дали задание узнать подходит ли JUnit ля тестирования Android приложений. Не юнит тесты. Статей в инете проблематично найти по этому поводу. плиз, подскажите:)


(Nik Sidorenko) #2

Подходит. JUnit - это фреймворк по созданию и запуску тестов. Он может запускать как unit тесты так и интеграционные или UI тесты. Название может вводить в заблуждение :slight_smile:


(Yaroslav Pernerovskyy) #3

Сам по себе JUnit это, грубо говоря, тест ранер, он подходит для запуска любых тестов. На базе JUint’a можно легко постоить систему для тестирования Андроид приложений, но тут одного JUint’a недостаточно, нужно еще тулы для доступа к андроиду, Appium например или что либо другое.


(Eugene Moskalenko) #4

Если будете использовать, советую посмотреть в сторону TestNG, тоже раннер, оч похож на JUnit, но как по мне - современней… :slight_smile:


(asolntsev) #5

Возражу: TestNG - зло.
Он умеет всё то же, что и JUnit, и плюс ещё несколько фич, которые сами по себе вредные. Например, TestNG позволяет прописать зависимости между тестами.


(Михаил Братухин) #6

А чем это плохо, в смысле - зло?


(asolntsev) #7

В смысле чем плохо, когда тесты зависят друг от друга? Я думал, это всем очевидно. Об этом написано миллион раз, мне не стоит повторять, наверное.


(Михаил Братухин) #8

Ну, так и про GOTO везде пишут, что оно тоже зло, но если знать, что делаешь и для чего - то можно и его применять умеючи. Но, я вас не призываю его применять и сам не применяю.
Пожалуйста не считайте эти слова за призыв к действию. :grinning:

Вот тут есть у Алексея про это статья даже: …почему иногда всё-таки можно делать зависимые тестовые методы?
Это как с религиозными течениями получается. Есть ортодоксы, а есть менее строгие ветви. И ортодоксы всегда смотрят на этих отступников и ворчат, что те не настоящие и отошли от догматов.


(asolntsev) #9

Нет, GOTO нельзя применять.
Хорошо известно, что там, где он якобы мог бы бы полезен, легко написать аналогичную конструкцию и без GOTO.

То же самое и с зависимыми тестами.
Статью читал, да. Приведённые там случаи надуманны - собственно, и сам автор так считает. Он первым же делом приводит пример, как можно написать тест без зависимостей. Единственный недостаток “в недостаточной детализированности отчёта”, и это полная чушь, как сам же автор и говорит. Ради одной чуши строить другую чушь - это двойное зло.


(Eugene Moskalenko) #10

Если честно, не совсем понял ваше утверждение… Я делаю тестовые методы в классах, и запускаю в testNG классы, грубо говоря, в которых есть методы, используя TestNG. О какой зависимости между тестами идет речь? Если тестовый метод упал в одном из классов, то остальные тесты без проблем могут не падать и попадать в отчеты как пройденные тесты…

Для меня как-то дико делать тестовый-класс, в котором будут методы, как шаги… Какую проблему этим решаем? Да и шаги и ту самую бизнес логику в этих шагах можно без проблем спрятать в пейджОбжекте…

Или я что-то не так понял? Поправьте пожалуйста, может и вправду вы правы, что TestNG - зло…


(asolntsev) #11

То, что вы описали - это независимые тесты. Тут всё хорошо. Их можно запускать в любом порядке, и падение одного не вызывает падения других.

А злая фича, которая есть в TestNG - это возможность указать, что тест Б должен запускаться ПОСЛЕ теста А. Потому что Б рассчитывает на то, что А приведёт систему к нужному состоянию. Если А упал, то и Б считается упавшим. Вот это зло!


(Eugene Moskalenko) #12

Огромное спасибо, что разьяснили :slight_smile:

Хм… ну думаю так утверждать, что из-за этого - зло, наверное не совсем корректно. Ведь, любым инструментом надо уметь пользоваться… Если инструмент может делать что-то “злое”, то это можно попросту не использовать… :slight_smile: Да и натупить сложно, поскольку везде и все трубят, что тесты должны быть независимыми друг от друга, иначе поддерживать их становится очень сложно… Да и TestNG не заставляет использовать то самое “зло” :slight_smile:

Думаю вот эта ссылочка автору данного поста расставит все точки над “И” - http://www.mkyong.com/unittest/junit-4-vs-testng-comparison/


(asolntsev) #13

Да-да.
Около школы, в которой учатся ваши дети, трётся какой-то подозрительный тип. Он продаёт детям витаминки и наркотики. Но он не плохой, ведь дети могут наркотики попросту не использовать. Да и натупить сложно, поскольку везде трубят, что наркотики вредные. Да и этот славный парень не заставляет покупать то самое зло…


(Eugene Moskalenko) #14

Не без этого :slight_smile: