У меня Android-приложение, и я бы хотел создать для него тестовые примеры.Android Testing - Невозможно установить правильную конфигурацию
Я прочитал Docs в Docs на Android Dev, и попробовал много вещей ...
Вот основная структура моего приложения:
Я создал SadAppTest
класс, с помощью ALT + ENTER над SadApp extends Application
класса в редакторе и выберите опцию Create Test, см:
Вот код сгенерированной тестового класса:
package com.procode.saveadog;
import android.test.ApplicationTestCase;
/**
* <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
*/
public class SadAppTest extends ApplicationTestCase<SadApp> {
public SadAppTest() {
super(SadApp.class);
}
}
Я пытался добавить простой тест, который проверяет что-то в SadApp
классе. В документах я прочитал, что должен получить объект приложения в коде функцией getActivity()
.
Я создал очень простой тест, который запрашивает UUID пользователя из класса Application
и сравнивает, что данный UUID будет таким же. Код:
public void testUserUuid(){
assertEquals(getApplication().getUserId(), getApplication().getUserId());
}
Но этот тест бросает NullPointerException
!
java.lang.NullPointerException
at com.example.myapp.SadAppTest.testUserUuid(SadAppTest.java:14)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)
метод высокоточного getActivity()
возвращает нуль, потому этот тест работает нормально:
public void testUserUuid(){
assertTrue(getApplication() == null);
}
Что мне не хватает?
Спасибо! Я уже «решил» эту проблему, забыв об этом, и через месяц повторно создал полный тестовый материал. Но это было решение, поэтому еще раз спасибо! –