vKa*_*yap 5 junit android unit-testing
我有一个简单的测试用例,用于测试是否在按钮点击时启动了拨出呼叫.
public void testCalling(){
IntentFilter callFilter = new IntentFilter();
callFilter.addAction(Intent.ACTION_CALL);
callFilter.addCategory(Intent.CATEGORY_DEFAULT);
callFilter.addDataScheme("tel:");
ActivityMonitor mMonitor = new ActivityMonitor(callFilter, null, false);
getInstrumentation().addMonitor(mMonitor);
mSolo.clickOnText("CALL");
assertTrue(0 < mMonitor.getHits());
sendKeys(KeyEvent.KEYCODE_ENDCALL);
}
Run Code Online (Sandbox Code Playgroud)
虽然调用了Intent(传出调用),但我的ActivityMonitor无法注册它.堆栈跟踪是
05-28 17:11:09.183: I/ActivityManager(71): Starting activity: Intent { act=android.intent.action.CALL dat=tel:+xxxxxxx cmp=com.android.phone/.OutgoingCallBroadcaster }
Run Code Online (Sandbox Code Playgroud)
请帮忙
我能找到的唯一其他资源就是这个讨论在Android开发者小组没有任何解决方案的情况下结束
小智 1
在遇到同样的问题并玩了一下之后,我让它工作了。
把“tel”的冒号去掉。然后你的显示器上应该会出现一个点击。
public void testMakeCall(){
IntentFilter filter = new IntentFilter(Intent.ACTION_CALL);
filter.addCategory(Intent.CATEGORY_DEFAULT);
filter.addDataScheme("tel");
ActivityMonitor activityMonitor = getInstrumentation().addMonitor(filter, null, false);
makeCall();
assertTrue(activityMonitor.getHits() == 1);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1463 次 |
最近记录: |