Можно ли создать заглушку android.os.Bundle для тестирования под JVM? - PullRequest
3 голосов
/ 13 сентября 2011

Как следует из названия, я хочу знать, если возможно, как я могу создать заглушку из Bundle для запуска на JVM (так что не Dalvik). Поскольку он входит в пакет android.os, возможно, это связано с такой невозможностью.

Моя точка зрения связана с тем, что я хочу использовать фальшивую среду, которая работает на JVM, для проверки метода Activity.onCreate().

Я уже нашел эту ссылку , но кажется, что они используют раздетый пользовательский android.jar, поскольку он довольно экспериментален и не проверен (пока я не мог воспроизвести даже с их банкой, может быть, мне нужно немного поспать) .

Если есть другая альтернатива проверке этого, любые идеи, как всегда, будут оценены.

Спасибо.

1 Ответ

2 голосов
/ 14 сентября 2011

Я успешно пишу модульные тесты на java jvm для классов, которые взаимодействуют с классами android.jar.Я использую Powermock для макетирования всех классов Android (например, Bundle).

Эта ссылка говорит об использовании версии jar для Android, которая не вызывает исключение "заглушки" на java jvm.,Мне не нужно было использовать другую версию баночки Android.Используя Powermock, я смог успешно смоделировать все, что мне нужно.Для меня эта методика модульного тестирования не является экспериментальной.

Сказав это, - модульные тесты для классов, которые расширяют действия, фрагменты и т. Д., Становятся очень тяжелыми.Я чувствую, что хорошо перенести как можно больше логики в классы pojo, сохраняя ваши расширенные классы Android максимально тонкими.Тогда вы можете решить, считаете ли вы нужным изоляцию, тестируя расширенные классы Android.Это, безусловно, можно сделать, если хотите.Вы также можете рассмотреть интегрированную среду тестирования, например, предоставляемую Android или Robotium для тестирования расширенных классов Android и их жизненных циклов.

...