Похоже, что происходит какое-то волшебство, и мне интересно понять, почему это происходит:)
Вот мой юнит-тест:
public class SelectThemeActivityTest
extends ActivityInstrumentationTestCase2<SelectThemeActivity> {
private final static int[] STATIC_ARRAY = { 0, 1, 2 };
public SelectThemeActivityTest() {
super("com.the7art.simplewallpaper", SelectThemeActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
// some array usage here - will throw NullPointerEcxeption on second test
// see description below
STATIC_ARRAY[0] = 2;
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
public void testFirst() {
}
public void testSecond() {
}
public void testThird() {
}
}
Если яЗапустите этот тестовый пример. первый тест успешно завершится , а все остальные завершатся неудачно, выдав NullPointerException from setUp () - строку, которая пытается получить доступ к STATIC_ARRAY.
Еще больше меня удивляет тот факт, что если я изменю тестовый пример на расширение AndroidTestCase вместо ActivityInstrumentationTestCase2 , то все тесты пройдут успешно !Магия!: -)
Также, если я удаляю ключевое слово «static» из STATIC_ARRAY, тесты также успешно выполняются.
Так что ясно, что что-то модифицирует мой STATIC_ARRAY, делая его нулевым между выполнениями теста, скорее всегов tearDown () и что что-то имеет отношение к ActivityInstrumentationTestCase2 , но как отследить это что-то ?:-) Есть идеи?