Java android检测测试中的模拟包管理器

Java android检测测试中的模拟包管理器,java,android,android-espresso,functional-testing,Java,Android,Android Espresso,Functional Testing,我为以下内容编写仪器测试: PackageManager-PackageManager=getActivity().getPackageManager(); 列出yandexApps=packageManager.QueryInputActivities(yandexIntent,0); 如果(!yandexApps.isEmpty()){ 星触觉(yandexIntent); }否则{ Intent playmarketyandexent=新意图(Intent.ACTION\u视图); pla

我为以下内容编写仪器测试:

PackageManager-PackageManager=getActivity().getPackageManager();

列出yandexApps=packageManager.QueryInputActivities(yandexIntent,0); 如果(!yandexApps.isEmpty()){ 星触觉(yandexIntent); }否则{ Intent playmarketyandexent=新意图(Intent.ACTION\u视图); playMarketYandexIntent.setData(Uri.parse(“market://details?id=ru.yandex.yandexmaps")); startActivity(playMarketYandexIntent); }

此应用程序与另一个应用程序进行交互,如果未安装用于交互的应用程序,则我的应用程序的行为会发生变化,因此我希望执行类似于模拟packageManager.QueryInputActivities(yandexIntent,0)的操作


我见过单元测试的解决方案,但是仪器测试呢?也许,存在一些涉及浓缩咖啡或UIautomator的解决方案?

如果应用程序未安装,您所说的模拟是什么意思?packageManager.queryIntentActivities(yandexIntent,0)是做什么的?packageManager.queryIntentActivities(yandexIntent,0)-这就像是在包管理器应用程序“Yandex”中通过具有预定uri的intent进行搜索。如果android package manager中没有满足此目的的应用程序,则Yandex应用程序列表将为空。然后,如果此列表不为空(设备上安装了应用程序),则会打开else play market进行安装。所以我想在每次测试运行时都不安装/卸载应用程序“Yandex”的情况下对这两种情况进行测试。我面临着同样的问题。自从你写了这篇文章后,你找到解决办法了吗?