我在寫一個JUnit測試,用於使用MockRxAndroidBle將數據寫入BLE特性。使用DeviceBuilder
上的addService(UUID, List<BluetoothGattCharacteristic>)
方法將特徵添加到模擬設備中。特性本身是使用CharacteristicsBuilder創建的。測試運行時,失敗並顯示消息java.lang.RuntimeException: Method setValue in android.bluetooth.BluetoothGattCharacteristic not mocked. See http://g.co/androidstudio/not-mocked for details."
Mocking BLE特性使用MockRxAndroidBle寫入
引用的鏈接指示應在單元測試中使用默認值。
testOptions { unitTests.returnDefaultValues = true }
啓用,允許試驗,讓過去的特性設置,但試圖寫入特性時失敗。此時的例外是BleCharacteristicNotFoundException
。仔細檢查後,RxBleDeviceServices
中的BluetoothGattService
實例似乎在通過UUID檢索特徵時返回null。調試器還顯示該服務沒有任何特性,列表爲空。我相信null是這個內部列表的默認值。
有沒有辦法創建一個JUnit測試來模擬寫入特性?