java - 如何使用 ActivityTestCase 或 InstrumentationTestCase 测试异常

标签 java android android-studio junit junit4

我正在使用 Android Studio 1.2.2 创建一些 Junit 测试。这是我的测试类。它从 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());

最佳答案

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

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

据我所知,Android 中没有支持此功能的注释,因此您需要使用 try 和 catch 以 JUnit 4 之前的方式执行此操作

try {
  doSomethingThatShouldThrow();
  fail("Should have thrown Exception");
} catch (IllegalArgumentException e) {
  // success
}

关于java - 如何使用 ActivityTestCase 或 InstrumentationTestCase 测试异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30776197/

相关文章:

java - 如何在尝试调试应用程序时修复 "Could not connect to remote process"?

java - Android Padding 不影响布局

java - Android onPreExecute方法报奇怪错误

java - initLoader - 如何处理配置更改?

android - 任务 ':app:dexDebug' 非零退出值 2 执行失败

android-studio - 委托(delegate)应用程序签名过程是否安全?

android-studio - Android Studio :disable "never used" warning on methods that I want to use later

java - 显示 AlertDialogFragment 会导致 NullPointerException

java - google oauthed后如何获取用户的电子邮件

java - 获取编码的区域名称-HBase