Android: модульный тест: как создать модульный тест с помощью SensorManager? - PullRequest
0 голосов
/ 22 сентября 2011

У меня есть простой Jar Project, на который ссылается приложение для Android. Затем у меня есть Functions.java для моих общих функций, которые я хочу создать для модульного теста.

Вот примеры функций внутри Functions.java:

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

Любые указания в правильном направлении приветствуются.

1 Ответ

0 голосов
/ 10 октября 2011

Оба метода имеют зависимости от внешнего кода, поэтому будет сложно провести модульное тестирование.

Если вы действительно хотите провести модульное тестирование только логики, вам необходимо провести рефакторинг, чтобы они зависели от интерфейсов, а затем создать макеты, реализующие эти интерфейсы, чтобы вы могли передать известные данные и проверить, получили ли вы соответствующий вывод

...