Клас на приложение за тестване на Android JUnit

Опитвам се да настроя тестови случаи на JUnit за приложение, което разработвам в момента. Основният проблем, с който се сблъсквам, е, че не мога да получа достъп до обект, който съхранявам в моя клас Application. Разширявам класа AndroidTestCase за писане на тестови случаи.

Опитах се да получа достъп до този обект (да речем myData) от

Myapp app = (Myapp) getContext()
                .getApplicationContext();
String myData=app.getData();

Но това хвърля изключение за нулев указател в app.getData(); как мога да получа достъп до този обект по време на изпълнение?


person Rahul    schedule 21.10.2013    source източник


Отговори (1)


Моля, покажете още код, клас където extends AndroidTestCase, клас където extends TestSuite

Освен това може да забравите да добавите към AndroidManifest:

...

  <instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="YOUR_PACKAGE"/>

    <application
        android:label="@string/app_name"
        android:name="YOUR_APPLICATION_CLASS">

        <uses-library android:name="android.test.runner"/>

...
person artemiygrn    schedule 21.10.2013
comment
Благодаря за отговора Не съм добавил свойството android:name= в маркера на приложението в манифеста на тестовото приложение. Как да добавя? Какво трябва да бъде името на класа? Да кажем, че моето целево приложение има клас на приложение „MyApp“, тогава какво трябва да се добави в манифеста на тестовото приложение - person Rahul; 21.10.2013
comment
мисля, че android:name=MyApp, ако няма под пакети, опитайте да използвате бърз клавиш за предложения за вашата IDE, като ctrl + интервал за Intellij Idea - person artemiygrn; 21.10.2013
comment
@artemiygrn Как да тествам единица/инсталирам клас персонализирано приложение. - person Girish; 21.04.2020