我有一个活动,希望在调用意图中有一个额外的设置作为输入值。因为它是一个非常基本的类,并且在没有额外的情况下无法工作,我想测试每次没有设置额外时抛出异常(或者如果它是错误的对象类型)。我尝试过这样的事情:
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测试我想要有例外?
答案 0 :(得分:0)
测试期望你的代码实际抛出异常,当你自己捕获它时,你不要让测试框架看到它,结果是方法退出而没有抛出异常,这不是预期的结果。删除try-catch块,测试应该通过。