如何对android SensorEvent
和MotionEvent
类进行单元测试?
我需要为单元测试创建一个MotionEvent
对象。 (我们有obtain
的MotionEvent
方法,可以在模拟创建MotionEvent
自定义对象后使用)
对于MotionEvent类,我尝试使用Mockito
像这样:
MotionEvent Motionevent = Mockito.mock(MotionEvent.class);
但是出现以下错误,我正在使用Android Studio:
java.lang.RuntimeException:
Method obtain in android.view.MotionEvent not mocked. See https://sites.google.com/a/android.com/tools/tech-docs/unit-testing-support for details.
at android.view.MotionEvent.obtain(MotionEvent.java)
在此错误提到的网站之后,我添加了
testOptions {
unitTests.returnDefaultValues = true
}
在build.gradle上,但仍然出现同样的错误。有什么想法吗?
最佳答案
我终于通过使用MotionEvent
为Roboelectric
实现了它
import android.view.MotionEvent;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.Config;
import static org.junit.Assert.assertTrue;
import org.robolectric.RobolectricGradleTestRunner;
@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class)
public class ApplicationTest {
private MotionEvent touchEvent;
@Before
public void setUp() throws Exception {
touchEvent = MotionEvent.obtain(200, 300, MotionEvent.ACTION_MOVE, 15.0f, 10.0f, 0);
}
@Test
public void testTouch() {
assertTrue(15 == touchEvent.getX());
}
}
我们如何为
SensorEvents
做同样的事情?关于android - 如何在Android中模拟MotionEvent和SensorEvent进行单元测试?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34530865/