ผู้ให้บริการตำแหน่งทดสอบในโครงการทดสอบเครื่องมือวัด Android

ฉันมีแอปพลิเคชันซึ่งใช้ LocationManager ดังนั้นตอนนี้ฉันกำลังเขียนแบบทดสอบเครื่องมือวัด ฉันพบคำตอบที่คล้ายกันอยู่แล้ว แต่จะใช้งานไม่ได้ ฉัน.

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" โดยมี SecurityException ที่ "android.permission.ACCESS_MOCK_LOCATION" หายไป ประเด็นก็คือการทดสอบเครื่องมือ AndroidManifest.xml มีสิทธิ์การใช้งานนี้ แต่แอปพลิเคชันที่จะทดสอบไม่ได้

<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> 

มีใครมีความคิดวิธีแก้ปัญหานี้หรือไม่?


person alosdev    schedule 15.11.2010    source แหล่งที่มา


คำตอบ (1)


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

ควรอยู่นอก <application></application>

person icyerasor    schedule 17.03.2011
comment
น่าเสียดายที่นั่นไม่ใช่วิธีแก้ปัญหา เนื่องจากแอปพลิเคชันจริงไม่ได้รับอนุญาต .. :( - person alosdev; 26.04.2011
comment
แต่มันจำเป็นต้องได้รับการทดสอบเช่นนี้ และมันจะต้องอยู่นอกแท็ก ‹application› ในทุกกรณี - person icyerasor; 27.04.2011