gpt4 book ai didi

android - android instrumentation 测试项目中的测试位置提供程序

转载 作者:太空狗 更新时间:2023-10-29 13:42:21 25 4
gpt4 key购买 nike

我有一个使用 LocationManager 的应用程序。因此,我现在正在编写一个仪器测试。我已经找到了一个类似的 answer ,但这对我不起作用。

public class LocationSensorTest extends AndroidTestCase {
/*package*/ LocationManager lm;
private LocationSensor sensor;

@Override
protected void setUp() throws Exception {
super.setUp();
sensor = new LocationSensor(getContext());
lm = (LocationManager) getContext().getSystemService(Context.LOCATION_SERVICE);
lm.addTestProvider("test", false, false, false, false, false, false, false, Criteria.POWER_LOW, Criteria.ACCURACY_FINE);
lm.setTestProviderEnabled("test", true);
}

public void testHasAnyActiveLocationProvider() {
assertTrue(sensor.hasAnyActiveLocationProvider());
}
}

测试在“addTestProvider”期间失败,出现“android.permission.ACCESS_MOCK_LOCATION”缺失的 SecurityException。重点是插桩测试AndroidManifest.xml有这个use权限,但是要测试的application没有。

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="de.app.android.tests" android:versionCode="1" android:versionName="1.0">
<application>
<uses-library android:name="android.test.runner" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
</application>
<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="de.app.android" android:label="Requester App Tests" />
<uses-sdk android:minSdkVersion="4" />
</manifest>

有人知道如何解决这个问题吗?

最佳答案

<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />

应该在<application></application>之外

关于android - android instrumentation 测试项目中的测试位置提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4185512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com