如何使用ActivityTestCase或InstrumentationTestCase测试异常

时间:2015-06-11 09:01:09

标签: java android android-studio junit junit4

我正在使用Android Studio 1.2.2创建一些Junit测试。这是我的TestClass。它从ActivityTestCase(或InstrumentationTestCase)扩展。

public class TypeTest extends ActivityTestCase 
{
    TypesMeth typesMeth = new TypesMeth();

    public void testTypes() 
    {
        typesMeth.setValue((short) 1000000);
        assertEquals(exception, typesMeth.getValue());
    }
}

参数必须很短。因此范围从-32768到32767.

如果我传递1000000的值,它应该抛出异常并且应该传递测试。

我该怎么检查?类似于:assertExceptionIsThrown(true, typesMeth.getValue());

1 个答案:

答案 0 :(得分:2)

在经典的JUnit 4中,您可以在测试用例之前添加一些注释

@Test(expected = IllegalArgumentException.class)
public void myUnitTest() {
   ...
}

据我所知,Android中没有支持这种情况的注释,所以你需要以前JUnit 4方式使用try和catch

进行注释。
try {
  doSomethingThatShouldThrow();
  fail("Should have thrown Exception");
} catch (IllegalArgumentException e) {
  // success
}