2012-03-13 86 views
0
java.lang.NullPointerException 
at com.android.deviceintelligence1.test.Testappdata.testappd(Testappdata.java:29) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169) 
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154) 
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:529) 
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1448) 

這是我的運行測試class.in錯誤日誌後錯誤。錯誤測試服務類

public class Testappdata extends ServiceTestCase<MainService> { 

    public Testappdata() { 
     super(MainService.class); 
    } 

    protected void setUp() throws Exception { 
     try { 
      super.setUp(); 
     } catch (Exception e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 
    MainService main; 

    public void testappd() { 
     main = getService(); 
     String Package = "com.android"; 
     Assert.assertNotNull(main.appData(Package)); 

    } 

這是我的測試class.to測試服務來獲取數據值。

public class MainService extends Service { 
private final static String TAG = "Device Intelligence"; 
double lat = 0.0; 
double lng = 0.0; 
List<Address> addresses = null; 
String addre; 
Handler mHandler = new Handler(); 
String lPackAgeName, packAgeName = ""; 
public static DataHelper dh; 

public String appData(String pName) { 
    PackageManager pm = getPackageManager(); 
    try { 

     Method getPackageSizeInfo = pm.getClass().getMethod(
       "getPackageSizeInfo", String.class, 
       IPackageStatsObserver.class); 
     getPackageSizeInfo.invoke(pm, pName, 
       new IPackageStatsObserver.Stub() { 
        public void onGetStatsCompleted(PackageStats pStats, 
          boolean succeeded) throws RemoteException { 
         data_value = String.valueOf(pStats.dataSize/1024) 
           + "kb"; 
         Log.d("bugs", "datavalue: " + data_value); 
        } 
       }); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return data_value; 
} 

這是我的服務class.so我怎樣才能清除error.is療法在測試類出去求救錯誤.thanks事先需要作出改變。

+2

還有什麼在Testappdata第29行 – Android 2012-03-13 09:02:03

+0

Assert.assertNotNull(main.appData(包));這是第29行 – thej 2012-03-13 10:01:54

回答

2

我會假設NullPointerException異常來源於此行:

​​

正確的方式來獲得一個可測試的服務是通過調用startService在ServiceTestCase類(意向)或bindService(意向書),檢查出的API here

測試用例等待調用onCreate(),直到其中一個測試方法調用startService(Intent)或bindService(Intent)。這使您有機會在測試正在運行的服務之前設置或調整任何其他框架或測試邏輯。

假設你有一個正確的開始服務正常,你應該寫你的測試代碼是這樣的:

startService(new Intent(getContext(), MainService.class)); 
main = getService(); 
... ... 

希望這有助於。