Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在API23+;_Android_Testing - Fatal编程技术网

Android 在API23+;

Android 在API23+;,android,testing,Android,Testing,我想编写一个检测测试,以验证使用API23+上的FusedLocation API请求位置更新的应用程序的行为 我有一些要求: 测试必须在模拟器(AVD)中运行,因为我希望测试在Travis CI或circle CI等持续集成服务中运行 我想使用UI自动机测试棉花糖权限请求对话框是否正确弹出 我希望通过使用断言检查requestLocationUpdates()返回的Location对象来确保代码正常工作 由于需要在模拟设备上进行测试,因此我们必须使用FusedLocation.setMoc

我想编写一个检测测试,以验证使用API23+上的FusedLocation API请求位置更新的应用程序的行为

我有一些要求:

  • 测试必须在模拟器(AVD)中运行,因为我希望测试在Travis CI或circle CI等持续集成服务中运行
  • 我想使用UI自动机测试棉花糖权限请求对话框是否正确弹出
  • 我希望通过使用断言检查requestLocationUpdates()返回的Location对象来确保代码正常工作
由于需要在模拟设备上进行测试,因此我们必须使用FusedLocation.setMockLocation()来获取位置,否则requestLocationUpdates()将不会产生任何结果

到目前为止,我一直面临着这些问题:

  • setMockMode()和setMockLocation()都需要location权限:这意味着我必须在测试代码中请求location权限,一旦我的测试代码到达requestLocationUpdates()调用,它将不会再次请求权限(因为它已经有了权限)因此,不允许我使用UI Automator测试权限请求对话框
  • setMockLocation()需要在开发人员选项中手动设置“允许模拟位置”,因此连续集成将失败,因为每次生成都会创建一个新的仿真器,并且默认情况下将禁用“允许模拟位置”
在我看来,我已经走到了死胡同。请证明我错了