Saya memiliki aplikasi yang menggunakan LocationManager. Oleh karena itu saya sekarang sedang menulis tes instrumentasi. Saya sudah menemukan jawaban yang serupa, tetapi ini tidak akan berhasil untuk Saya.
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());
}
}
Pengujian gagal selama "addTestProvider" dengan SecurityException yang "android.permission.ACCESS_MOCK_LOCATION" tidak ada. Intinya pengujian instrumentasi AndroidManifest.xml memiliki izin penggunaan ini, tetapi aplikasi untuk menguji tidak.
<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>
Adakah yang tahu cara mengatasi ini?