2

我的问题是我正在尝试模拟 BluetoothDevice 进行一些测试,但这是最后一课。因此,要使用 PowerMock 模拟它,我必须使用@PrepareForTest注释。但是,当我说 时@PrepareForTest({BluetoothDevice.class}),我得到了一个例外。这是错误输出的前几行:

java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
at sun.reflect.annotation.AnnotationParser.parseClassArray(Unknown Source)
at sun.reflect.annotation.AnnotationParser.parseArray(Unknown Source)
at sun.reflect.annotation.AnnotationParser.parseMemberValue(Unknown Source)

这是我正在使用的代码(测试仍然需要填写,我只是在减少变量):

@RunWith(PowerMockRunner.class)
@PrepareForTest({ BluetoothDevice.class })
public class BluetoothCommTest {
    @Test
    public void testBluetoothComm() {
        fail("Not yet implemented");
    }
}

谢谢您的帮助!

4

1 回答 1

1

我弄清楚发生了什么事。我按照此页面上的说明进行操作,他们提供的 android.jar 已过时,并且不包含蓝牙库。

为了解决这个问题,我使用了 Powermock 1.2.5 和 Android 15 SDK 中包含的 android.jar。

于 2012-07-24T16:30:58.927 回答