Android - 测试一个活动引发异常

时间:2014-06-22 07:45:49

标签: java android

我有一个活动,希望在调用意图中有一个额外的设置作为输入值。因为它是一个非常基本的类,并且在没有额外的情况下无法工作,我想测试每次没有设置额外时抛出异常(或者如果它是错误的对象类型)。我尝试过这样的事情:

     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测试我想要有例外?

1 个答案:

答案 0 :(得分:0)

测试期望你的代码实际抛出异常,当你自己捕获它时,你不要让测试框架看到它,结果是方法退出而没有抛出异常,这不是预期的结果。删除try-catch块,测试应该通过。