Tôi có một logic nghiệp vụ trong phân đoạn ít giao diện người dùng mà tôi phải thử nghiệm. Tôi đã thử 2 lựa chọn và cả hai đều thất bại.Thử nghiệm các mảnh vỡ Android
1. Sử dụng AndroidTestCase và tạo hoạt động giả.
Tiếp theo đang
@Override
protected void setUp() {
Intent i = new Intent(getTestContext(), TestActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getTestContext().startActivity(i);
}
ném một ngoại lệ
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. Sử dụng ActivityInstrumentationTestCase2 với các hoạt động giả
Mã
public class IabTest extends ActivityInstrumentationTestCase2<TestActivity> {
public IabTest() {
super("com.xxx.iabsample.test", TestActivity.class);
}
}
ném một ngoại lệ
java.lang.RuntimeException: Unable to resolve activity for: Intent { act=android.intent.action.MAIN flg=0x10000000 cmp=com.xxx.iabsample/.test.TestActivity }
Dường như nó cố gắng để bắt đầu hoạt động từ ứng dụng thử nghiệm mục tiêu, không phải từ ứng dụng thử nghiệm.
Vì vậy, cách chính xác để kiểm tra phân đoạn là gì?
thấy điều này http://stackoverflow.com/questions/4162447/android-java-lang-securityexception-permission-denial-start-intent – Elior