2011-09-22 9 views
0

私はアンドロイドアプリケーションで参照するプレーンJarプロジェクトを持っています。 次に、ユニットテストクラスを作成する共通の機能のためのFunctions.javaを用意しました。右方向上の任意の案内が高く評価されAndroid:ユニットテスト:SensorManagerでユニットテストを作成するにはどうすればよいですか?

public static double getAltitudeBySensor(float atmosphericPressure) { 
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD 
      && atmosphericPressure > 0d) { 
     return SensorManager.getAltitude(SensorManager.PRESSURE_STANDARD_ATMOSPHERE, atmosphericPressure); 
    } 
    return 0d; 
} 

public static double toPixelX(double imageSize, android.location.Location upperLeft, android.location.Location lowerRight, android.location.Location target) { 
    double hypotenuse = upperLeft.distanceTo(target); 
    double bearing = upperLeft.bearingTo(target); 
    double currentDistanceX = Math.sin(bearing * Math.PI/OneEightyDeg) * hypotenuse; 
    //       "percentage to mark the position" 
    double totalHypotenuse = upperLeft.distanceTo(lowerRight); 
    double totalDistanceX = totalHypotenuse * Math.sin(upperLeft.bearingTo(lowerRight) * Math.PI/OneEightyDeg); 
    double currentPixelX = currentDistanceX/totalDistanceX * imageSize; 

    return currentPixelX; 
} 

はここFunctions.java内部のサンプル関数です。

答えて

0

どちらのメソッドも外部コードに依存するため、単体テストは困難です。

実際に単体テストしたいのであれば、リファクタリングする必要がありますので、インターフェイスに依存し、それらのインターフェイスを実装するモックを構築して、既知のデータを渡して、適切な出力を受け取ったらテストしてください

関連する問題