2012-07-23 63 views
2

我的問題是,我試圖模擬BluetoothDevice進行一些測試,但它是一個最終的類。所以,要用PowerMock來嘲弄它,我必須使用@PrepareForTest註釋。但是,當我說@PrepareForTest({BluetoothDevice.class}),我得到一個例外。下面是錯誤輸出的前幾行:PowerMock和Android TypeNotPresentExceptionProxy當模擬BluetoothDevice

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"); 
    } 
} 

謝謝您的幫助!

回答

1

我想清楚發生了什麼事情。我按照this page的說明操作,他們提供的android.jar版本已經過時,並且沒有包含藍牙庫。

爲了解決這個問題,我使用了Powermock 1.2.5以及Android 15 SDK附帶的android.jar。

相關問題