Проблема с запуском теста JUnit с помощью @Test на Android. Ожидаемая аннотация не работает

Я использую Eclipse и добавил JUnit4 в библиотеки. Есть тест, в котором я ожидаю исключений, и я использую аннотации @Test с такими параметрами:

@Test(expected = NullPointerException.class)
public void setNullClassLoader() {
    Noob.setClassLoader(null);
}

Но это не работает. Я не получаю полный тест, я получаю "тест не пройден" с исключением NullPointerException. Это пример результата моего теста:

java.lang.IllegalArgumentException: illegal return count
at com.naef.jnlua.LuaState.lua_pcall(Native Method)
at com.naef.jnlua.LuaState.call(LuaState.java:591)
at com.example.testlualib.tests.LuaStateErrorTest.testIllegalCall2(LuaStateErrorTest.java:256)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1873)

Все мои тесты происходят из AndroidTestCase, также я добавляю @RunWith(JUnit4.class) аннотация для моего основного тестового класса:

@RunWith(JUnit4.class)
public abstract class AbstractLuaTest extends AndroidTestCase {
...
}

person BORSHEVIK    schedule 27.01.2016    source источник


Ответы (1)


Если вы хотите запустить тест JUnit 4 (с хорошими аннотациями), вы не должны расширять AndroidTestCase. Пожалуйста, удалите @RunWith(JUnit4.class) тоже. Этот бегун устарел. Вы должны использовать бегун по умолчанию, который не нуждается в аннотации @RunWith.

public abstract class AbstractLuaTest {
    ...
}
person Stefan Birkner    schedule 27.01.2016