Jasmine 如何对缺失的浏览器功能实现进行单元测试,以实现100%的代码覆盖率?

Jasmine 如何对缺失的浏览器功能实现进行单元测试,以实现100%的代码覆盖率?,jasmine,karma-runner,karma-jasmine,Jasmine,Karma Runner,Karma Jasmine,我正在开发一个JavaScript Web音频API库,并对浏览器功能实现进行了多项测试或规范化,例如 try { window.AudioContext = window.AudioContext || window.webkitAudioContext; window.AudioFXGlobal.context = new AudioContext(); } catch (e) { AudioFX.error("Web Audio API Error: " + e.message

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

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

其中,对应的分支是我还没有在单元测试用例中介绍的唯一代码部分。例如,在到达代码块之前,我尝试手动将例如window.AudioContext设置为null,但没有成功


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

SoundJS WebAudioPlugin通过在上下文中使用旧方法(如果它们不存在)创建api的最新属性和方法来初始化旧版本的web音频,从而为其设置支持。有关详细信息,请参阅

例如:
s、 context.createGain=s.context.createGainNode

感谢OJay抽出时间,但在我创建gainNode的代码中,您的示例是1:1。我的问题更针对如何提供测试用例,这样我就可以通过单元测试故意遇到由于缺少浏览器实现而导致的错误。答案很可能是泛泛的,与WebAudio完全无关。
if (!this.source.start) {
  this.source.start = this.source.noteOn;
}