[英]Android - Testing That an Activity Throws an Exception
我有一个活动,期望在调用意图内有一个额外的设置作为输入值。 因为这是一个非常基本的类,并且没有多余的东西就无法工作,所以我想测试每次未设置多余的东西(或者如果它是错误的对象)时都会引发异常。 我试图做这样的事情:
public class IntentAndroidGameTest extends ActivityInstrumentationTestCase2<BaseActivity> {
public BaseActivityTest() {
super(BaseActivity.class);
}
@Test
public void testCorrectSetUp() {
setActivityIntent(createIntent(new CorrectExtra()));
assertNotNull(getActivity());
}
@Test
public void testSetUpWithoutExtra1() {
setActivityIntent(createIntent(null));
try {
getActivity();
} catch (IllegalArgumentException e) {
assertEquals("Extra must be set!", e.getMessage());
}
}
@Test(expected = IllegalArgumentException.class)
public void testSetUpWithoutExtra2() {
setActivityIntent(createIntent(null));
getActivity();
}
protected Intent createIntent(Serializable extra) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.putExtra("myExtra", extra);
return intent;
}
}
抛出了异常,但是测试将其视为一个不好的信号并指出:
测试无法完成。 原因:由于“ java.lang.IllegalArgumentException”,仪器运行失败。
如何截获并告诉Android测试我希望有异常?
该测试期望您的代码实际抛出该异常,并且您自己捕获该异常时,您不会让测试框架看到该异常,结果该方法不抛出异常而退出,这不是预期的结果。 删除try-catch块,测试应该通过。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.