繁体   English   中英

Android-测试活动引发异常

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM