在Android上使用@Test运行JUnit测试的问题。预期的注释不起作用

时间:2016-01-27 14:39:52

标签: android junit junit3

我使用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 {
...
}

1 个答案:

答案 0 :(得分:0)

如果你想运行JUnit 4测试(带有漂亮的注释),那么你不能扩展AndroidTestCase。请删除@RunWith(JUnit4.class)。此运动员已弃用。您应该使用不需要@RunWith注释的默认运行器。

public abstract class AbstractLuaTest {
    ...
}