【问题标题】:Is there a way to unit test code that uses AudioKit in isolation?有没有办法对单独使用 AudioKit 的代码进行单元测试?
【发布时间】:2026-01-23 11:30:02
【问题描述】:

AudioKit 似乎与运行它的硬件紧密结合。例如,如果您将耳机插入计算机,在模拟器上运行的简单let mic = AKMicrophone() 可能会崩溃。

有没有办法配置 AudioKit 以将其与硬件隔离?现在对我来说似乎不可能可靠地对任何涉及 AudioKit 的代码进行单元测试。更不用说在云 CI 上进行了。

我错过了什么吗?

【问题讨论】:

    标签: audiokit


    【解决方案1】:

    实际上 AudioKit 本身是使用 TravisCI 测试的。

    https://audiokit.io/tests/

    基本上,我们将音频离线渲染到缓冲区并检查结果的 MD5 是否为已知值。

    不要使用 AKMicrophone(您不能依赖它进行测试),而是将发生器输出(我们使用基本正弦波)发送到处理节点。

    【讨论】:

    • 我宁愿考虑测试更基本的用法。 F.e.一种创建AKBoosterAKMicrophone 等模拟对象的方法。符合的协议或其他东西:)
    • 我觉得这不会考验这些东西的本质。它与传统的 iOS 或 Web 测试有很大不同。
    • 但它允许开发人员对使用 AudioKit 的代码进行单元测试 :)