繁体   English   中英

Android:单元测试:如何使用SensorManager创建单元测试?

[英]Android: Unit Test: How can I create unit test with SensorManager?

我有简单的Jar项目,由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;
}

任何对正确方向的指导表示赞赏。

两种方法都依赖于外部代码,因此很难进行单元测试。

如果您真的只想对逻辑进行单元测试,则需要重构它们,使其依赖于接口,然后构建实现这些接口的模拟,以便您可以传递已知数据并测试是否接收到适当的输出

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM