首页 > 解决方案 > Android 测试 - 带有 queryIntentActivities 的函数返回空列表

问题描述

所以我正在研究一个 UI 测试类,我面临的问题是我的 UI 测试触发的函数包含一个检查,queryIntentActivities()这个函数返回一个空列表,我不知道为什么。任何想法 ?

测试类:

@RunWith(AndroidJUnit4::class)
class TestMyActivity {

    private lateinit var scenario: ActivityScenario<MyActivity>


    @Before
    fun setUp() {
        scenario = ActivityScenario.launch(MyActivity::class.java)

    }

    @Test
    fun testMybutton() {
        scenario.onActivity {

            onView(withId(R.id.my_recyclerview))
                .perform(
                    RecyclerViewActions.actionOnItem<ViewHolder>(
                        hasDescendant(withText("text that match")),
                        click()
                    )
                )


            intended(hasAction(Intent.ACTION_DIAL))
         }
     }

点击时调用的函数:

public static void startCall(Context context, String phoneNumber) {
        try {
            Uri phoneUri = Uri.parse("tel:" + phoneNumber);
            Intent intent = new Intent(Intent.ACTION_DIAL);
            intent.setData(phoneUri);

            // Check if some app in device can handle this intent ( = check if
            // device
            // can use
            // dial feature, example : tablet can't)
            PackageManager manager = context.getPackageManager();
            List<ResolveInfo> infos = manager.queryIntentActivities(intent, 0);
            if (infos.size() > 0) {
                context.startActivity(intent);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

谢谢

标签: javaandroidkotlinuser-interfacetesting

解决方案


推荐阅读