Как протестировать объекты BLE на Android? - PullRequest
3 голосов
/ 06 августа 2020

Я учусь общаться по Bluetooth Low Energy на Android .. Вот пример приложения

Там в исходном коде есть несколько связанных с Bluetooth объектов, которые были окончательными классами очевидно:

private BluetoothManager mBluetoothManager;
private BluetoothAdapter mBluetoothAdapter;
private BluetoothGatt mBluetoothGatt;

Конечно, я не хочу тестировать такие библиотечные элементы, как BluetoothManager, BluetoothAdapter или сам BluetoothGatt. Но я хочу протестировать BluetoothLeService : Service, который был написан в этом проекте.

Я не знаю, как имитировать эти final BluetoothManager, BluetoothAdapter or BluetoothGatt объекты.

  1. Как я могу протестировать BluetoothLeService?
  2. Могу ли я написать простую единицу test s или мне нужно написать специальные androidTests s, где устройство подключено во время тестов?
  3. Как это будет выглядеть, когда у меня системы интеграции как среда сборки?

1 Ответ

0 голосов
/ 14 августа 2020

У вас должно быть несколько тестов, которые запускаются, когда ваше устройство действительно подключено к другому устройству Bluetooth.

  • Чтобы убедиться, что вы правильно реализовали шаблонный код для связи с настоящим устройством Bluetooth.
  • Чтобы убедиться, что вы читаете / записываете правильные характеристики, которые ожидаются от устройства.

Большая часть кода является шаблонным и будет одинаковым в любом приложении, использующем bluetoothle . Различия будут следующими:

  • Услуги, характеристики и что / когда вы обновляете или считываете информацию с устройства Bluetooth.

Поэтому я бы разделил ваше тестирование на две части :

  • Код, который просто подключается к устройству Bluetooth и считывает и записывает с устройства. Этот модуль кода должен быть повторно использован в любом приложении и не должен содержать никаких бизнес-логов c, уникальных для вашего приложения. Таким образом, вам нужно будет тестировать на реальном устройстве только тогда, когда вы вносите изменения в этот модуль кода.

  • Код, уникальный для вашего приложения. Сюда входят все бизнес-логи c, которые выполняются при чтении / записи информации с устройства Bluetooth. Здесь вы можете написать фиктивный класс, который притворяется устройством Bluetooth, с которого вы читаете / записываете информацию. Он может действовать как слой между бизнес-логом c, уникальным для вашего приложения, и кодом, который фактически подключается к устройству bluetooth и взаимодействует с ним. Во время ваших автоматических тестов он делает вид, что предоставляет фиктивные данные, прочитанные с устройства Bluetooth. Если вы хотите протестировать реальное устройство, переключите флаг и попросите его прочитать и записать на реальное устройство Bluetooth, используя код, который я упомянул в предыдущем пункте.

Большая часть код в примере приложения - это котельная. Вы должны вырезать из него все постороннее, что не нужно вашему приложению, и использовать его в качестве слоя в своем приложении, с которым взаимодействует ваш бизнес-лог c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...