【发布时间】:2014-01-27 21:59:21
【问题描述】:
我正在尝试将最小的 BLE 测试工具放在一起,测试控制 BLE 连接的两端。被测代码在设备上运行(iOS7 模拟器不支持 BLE)并使用CBCentralManager。连接的外围端将在 MacBook Pro 上。
iOS XCTestCase 在 Xcode 下运行在同一台 Mac 上。
我希望在 XCTestCase 中运行的测试代码能够控制 BLE 连接的外围端。
因此,一个典型的测试可能是:
1) XCTestCase 调用被测代码以使其连接到外围设备 (Mac)。
2) 连接完成后,XCTestCase 会导致外围设备(mac)关闭连接。
3)XCTestCase在iOS中检查被测代码生成的结果。
所以我的问题是 iOS XCTestCase 如何与在 OS X(Mac 环境)中运行的代码进行通信/控制
一切都在Xcode 监督下的同一台mac 上运行,除了充当外围端的代码。
我希望我已经很好地解释了这个场景,并且这是解决此类问题的正确位置。
我的一个想法是在 Mac 上运行一个 Web 服务器,XCTestCase 代码和外围代码都可以将消息传递给对方。更直接的交流会更好。
谢谢。
【问题讨论】:
-
你确定要测试这个吗?这就像通过实际执行 Web 请求来测试 Web 连接(除非我误解了这个问题)。取而代之的是嘲笑不是更好吗?
-
测试对象是低功耗蓝牙功能,以确保 iOS 应用在连接的 Central 端的有效行为。因此,XCTest 需要创建/强制条件(例如断开连接),然后监控应用程序的行为方式。例如,确保应用程序尝试重试重新连接。 Web 元素(本地服务器,在 mac 上运行)被简单地提出作为 XCTest 控制连接外围端的一种方法。对冗长的评论感到抱歉,希望它能澄清。
标签: ios objective-c xcode macos core-bluetooth