5
我有一個無UI的片段的業務邏輯,我必須測試。我試過2個選項,都失敗了。測試Android碎片
1.使用AndroidTestCase並創建模擬活動。
下面的代碼
@Override
protected void setUp() {
Intent i = new Intent(getTestContext(), TestActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getTestContext().startActivity(i);
}
拋出一個異常
Permission denied: checkComponentPermission() reqUid=10104
java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 cmp=com.xxx.iabsample.test/.TestActivity } from ProcessRecord{40769510 28116:com.xxx.iabsample/10070 (pid=28116, uid=10070) requires null
2.使用ActivityInstrumentationTestCase2故作活動
代碼
public class IabTest extends ActivityInstrumentationTestCase2<TestActivity> {
public IabTest() {
super("com.xxx.iabsample.test", TestActivity.class);
}
}
拋出一個異常
java.lang.RuntimeException: Unable to resolve activity for: Intent { act=android.intent.action.MAIN flg=0x10000000 cmp=com.xxx.iabsample/.test.TestActivity }
看來,它試圖從檢查對象的應用程序啓動活動,而不是從測試應用程序。
那麼,測試片段的正確方法是什麼?
看到這個http://stackoverflow.com/questions/4162447/android-java-lang-securityexception-permission-denial-start-intent – Elior 2013-04-22 11:06:31