小编Ben*_*enS的帖子

Swift:与核心蓝牙交互的单元测试代码

我正在实现一个用Swift 2.2编写的iOS应用程序,它与蓝牙设备交互(CBPeripheral).我有一个类,BLEManager它充当与CBCentralManager实例交互的接口.它提供了以下方法:

func startScanning() {    
   cbCentralManagerInstance.scanForPeripheralsWithServices()
}
Run Code Online (Sandbox Code Playgroud)

func disconnect() {
   cbCentralManagerInstance.cancelPeripheralConnection()
}
Run Code Online (Sandbox Code Playgroud)

以及它CBCentralManagerDelegate作为扩展实现方法:

func centralManager(:didDiscoverPeripheral)
func centralManager(:didConnectPeripheral)
func centralManager(:didDisconnectPeripheral)
func centralManagerDidUpdateState(:)
Run Code Online (Sandbox Code Playgroud)

如何BLEManager以这样的方式测试它是否测试CBCentralManagerDelegate方法被调用和行为验证?

这个问题:

一个单元如何测试与Core Bluetooth API交互的代码?

有人被问到并给出了一个简短的抽象答案,但我不知道在哪里或如何开始.答案提到验证代码与API的交互,但这会是什么样的?如果我需要一个真实CBPeripheral实例作为依赖项,那么委托方法如何被触发?

我看了一遍,找到了这样的例子:

  1. https://github.com/DeliciousRaspberryPi/MockFive/issues/1
  2. https://swifting.io/blog/2016/06/06/17-unit-test-all-the-things/
  3. http://markspanbroek.github.io/MockingInSwift/

但是他们给出了简短的概述和简单的代码示例来说明他们试图解释的一个问题,但这似乎不足以让我对如何实现和从何处开始有所了解.

请帮忙!!代码示例是首选的解释/答案.:)

unit-testing bluetooth ios core-bluetooth swift2

9
推荐指数
0
解决办法
1282
查看次数

标签 统计

bluetooth ×1

core-bluetooth ×1

ios ×1

swift2 ×1

unit-testing ×1