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