penyedia lokasi pengujian dalam proyek uji instrumentasi android

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?


person alosdev    schedule 15.11.2010    source sumber


Jawaban (1)


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

harus di luar <application></application>

person icyerasor    schedule 17.03.2011
comment
itu sayangnya bukan solusi, karena aplikasi aslinya belum ijin.. :( - person alosdev; 26.04.2011
comment
Tapi perlu diuji seperti ini. Dan itu juga harus berada di luar tag ‹aplikasi›. - person icyerasor; 27.04.2011