【问题标题】:How to unit test a missing browser feature implementation for 100% code coverage?如何对缺少的浏览器功能实现进行单元测试以实现 100% 的代码覆盖率?
【发布时间】:2015-05-20 10:41:46
【问题描述】:

我正在开发一个 JavaScript Web Audio API 库,并且对浏览器功能实现进行了多项测试或规范化,例如。

try {
  window.AudioContext = window.AudioContext || window.webkitAudioContext;
  window.AudioFXGlobal.context = new AudioContext();
} catch (e) {
  AudioFX.error("Web Audio API Error: " + e.message);
}

if (!this.source.start) {
  this.source.start = this.source.noteOn;
}

其中相应的分支是单元测试用例尚未涵盖的唯一代码部分。我试图手动设置例如。 window.AudioContextnull 例如在到达代码块之前,但没有运气。

所以我的问题是如何解决这个问题,或者分别尝试达到 100% 的代码覆盖率是否有意义,根据伊斯坦布尔的数据,目前该覆盖率为 93%。

【问题讨论】:

    标签: jasmine karma-runner karma-jasmine


    【解决方案1】:

    SoundJS WebAudioPlugin 通过在上下文中创建 API 的最新属性和方法(如果它们尚不存在)来设置对旧版本网络音频的支持。详情请见WebAudioPlugin._compatibilitySetUp

    示例: s.context.createGain = s.context.createGainNode;

    【讨论】:

    • 感谢您抽出时间 OJay,但您的示例在我的增益节点创建代码中是 1:1。我的问题是更有针对性的如何提供测试用例,这样我就可以通过单元测试故意遇到由于缺少浏览器实现而导致的错误。答案很可能是通用的,根本与 WebAudio 无关。
    猜你喜欢
    • 1970-01-01
    • 2017-03-02
    • 2016-05-04
    • 2023-03-24
    • 1970-01-01
    • 2023-03-21
    • 2017-10-09
    • 1970-01-01
    • 2016-09-29
    相关资源
    最近更新 更多