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は古く、Bluetoothライブラリは含まれていませんでした。

これを修正するために、Powermock1.2.5とAndroid15SDKに含まれているandroid.jarを使用しました。

于 2012-07-24T16:30:58.927 に答える