android - 如何对作用于加速度计的 Android Activity 进行单元测试?

标签 android unit-testing accelerometer

我从一个基于此 ShakeActivity 的 Activity 开始我想为它写一些单元测试。我之前为 Android Activity 编写了一些小型单元测试,但我不确定从哪里开始。我想为加速度计提供一些不同的值并测试 Activity 如何响应它。现在我保持简单,只是在“摇动”事件发生时更新一个私有(private) int 计数器变量和一个 TextView。

所以我的问题主要归结为:

如何从单元测试向加速度计发送虚假数据?

最佳答案

我对此的解决方案最终比我预期的要简单得多。我并没有真正测试加速度计,而是在测试应用程序对加速度计引发的事件的响应,我只需要进行相应的测试。我的类(class)实现SensorListener我想测试在 SensorChanged 上会发生什么。然后关键是输入一些值并检查我的 Activity 的状态。示例:

public void testShake() throws InterruptedException {
    mShaker.onSensorChanged(SensorManager.SENSOR_ACCELEROMETER, new float[] {0, 0, 0} );
    //Required because method only allows one shake per 100ms
    Thread.sleep(500);
    mShaker.onSensorChanged(SensorManager.SENSOR_ACCELEROMETER, new float[] {300, 300, 300});
    Assert.assertTrue("Counter: " + mShaker.shakeCounter, mShaker.shakeCounter > 0);
}

关于android - 如何对作用于加速度计的 Android Activity 进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2806976/

相关文章:

unit-testing - 在经济时代作为一个团体开始进行单元测试

reactjs - 浅层渲染使用 Refs 的 React/Enzyme 组件

javascript - Kotlin Javascript 中的 ReferenceError : ok is not defined at QUnitAsserter. assertTrue

c++ - 使用 kinect (libfreenect) 加速度计数据

Android 低通滤波器和高通滤波器

java - 如何在 Apache Commons Math 中执行整数线性规划

android - FireStore 批量写入不同的集合

android - 图库只有 1 张图片时不显示任何内容

c - 使用 3 轴加速度计和陀螺仪获取方向

java - 在android中实现保存按钮