Java 单元测试Android通知
我正在测试我的Android应用程序,我想测试,根据服务器发送的JSON,系统正在创建我期望的通知 例如,我有这样的测试:Java 单元测试Android通知,java,android,unit-testing,push-notification,android-pendingintent,Java,Android,Unit Testing,Push Notification,Android Pendingintent,我正在测试我的Android应用程序,我想测试,根据服务器发送的JSON,系统正在创建我期望的通知 例如,我有这样的测试: public void testCustomIconAndLinkNotification() throws Exception { String title = "title"; String message = "message"; String json = "{\n" + " \"android_backgr
public void testCustomIconAndLinkNotification() throws Exception {
String title = "title";
String message = "message";
String json = "{\n" +
" \"android_background_data\": true,\n" +
" \"__title\": \"" + title + "\",\n" +
" \"message\": \"" + message + "\",\n" +
" \"imageUrl\": \"nothing\",\n" +
" \"link\": \"nothing\"\n" +
" }";
Notification n = osbnr.createNotificationFromServerData(getInstrumentation().getContext(), new JSONObject(json));
Bundle b = n.extras;
assertEquals(title, b.get("android.title"));
assertEquals(message, b.get("android.text"));
}
虽然有点粗糙,但它确实在工作。但是,我遇到了很多安全问题,因为进行测试的过程与运行应用程序的过程不同,并且它正在创建安全异常
例如,在这里:
java.lang.SecurityException:权限拒绝:不允许pid=9487,uid=10373,(需要uid=10374)中的getIntentSender()作为包mypackage.test发送
在android.os.Parcel.readException(Parcel.java:1620)
位于android.os.Parcel.readException(Parcel.java:1573)
位于android.app.ActivityManagerProxy.getIntentSender(ActivityManagerNative.java:4039)
位于android.app.pendingent.getActivity(pendingent.java:312)
因为我正在尝试创建挂起的意图
以在通知中作为操作
:
PendingIntent linkPendingIntent = PendingIntent.getActivity(context, 2, i, PendingIntent.FLAG_UPDATE_CURRENT);
我的问题是:
关于我目前所做的测试,我想知道是否有一种合适的方法来测试通知是否被正确创建和显示,或者我们应该只是“希望和祈祷”