Струва ми се, че фундаментално не разбирам целта на Robolectric. Вече седмица се боря с него и досега получаването на ново съобщение за грешка се счита за напредък. Мога да тествам някои основни неща като статични изгледи в дейност, но когато нещо по-сложно влезе в игра, нещата просто се разпадат. Трябваше да разширя Robolectric, за да поддържа библиотеки на трети страни с определени параметри, ленти за действие на Appcompat и много други неща, което отнемаше изключително много време и не беше документирано никъде, а нещата напредват с почти ледникови темпове. Започвам да си мисля, че го използвам по грешен начин и просто не трябва да прави това, което искам.
Общата логика на приложението е доста ясна, така че всъщност няма много за тестване на единици, най-сложните неща са в потребителския интерфейс и отдалечените API извиквания. Трябва ли Robolectric просто да направи модулното тестване за Android по-малко болезнено, отколкото с JUnit, защото може да работи на JVM и поддържа няколко Android класа? Може би рамка за тестване на поведение на черна кутия като Espresso би била по-подходяща за моите нужди? Но ние използваме непрекъсната интеграция и Robolectric беше хубав и лесен за настройка, за да изпълнява тестове на CI сървъра, и бих искал да го запазим така.
За какво използвате Robolectric? Много публикации в блогове го препоръчват за „тестване на жизнения цикъл на активността“, но тъй като аз също съм доста нов в света на Android, не разбирам наистина целта му, особено след като приложението, което тествам, е само портретно . Може ли някой да даде общ преглед на това за какво използвате Robolectric и как го правите, за предпочитане с примери на код и да обясни защо и как тези тестове са важни?