【发布时间】:2015-10-01 18:01:28
【问题描述】:
我正在尝试在 Android 应用程序中测试 KeyguardManager 类的 isKeyguardSecure() 方法。
我尝试使用EasyMock、Mockito 和PowerMock 创建模拟KeyguardManager 对象,但失败了。以下是我的尝试和收到的错误消息。
EasyMock
KeyguardManager keyguardManagerMock = EasyMock.createMock(KeyguardManager.class);
错误信息:java.lang.IllegalArgumentException: android.app.KeyguardManager is not an interface
Mockito 和 PowerMock
KeyguardManager mockedKeyguardManager = Mockito.mock(KeyguardManager.class);
KeyguardManager mockedKeyguardManager = PowerMockito.mock(KeyguardManager.class);
错误消息:java.lang.VerifyError: mockit/internal/startup/Startup
java.lang.VerifyError: org/mockito/cglib/core/ReflectUtils
One explanation for this 指出根本问题在于 Android 设备运行的 Dalvik 虚拟机。任何人都可以验证这一点吗?是否可以使用任何可用于测试 Android 应用的可用模拟库来模拟 KeyguardManager 类?
谢谢!
【问题讨论】:
-
出于好奇,您为什么要尝试测试内置方法的功能?
标签: android unit-testing mocking mockito easymock