1

我正在尝试为我的反应应用程序构建一个测试套件。应用程序中的组件使用Audio

const audio = new Audio('beep.wav');
audio.play();

它在浏览器中有效,但据此不在 node.js 上。因此,当我使用酶尝试渲染组件时,会出现错误:

ReferenceError: Audio is not defined

我是测试新手,但有没有办法解决这个问题?我可以以某种方式模拟一个对象来Audio代替吗?我是 font-end/javascript 单元测试的新手,所以我仍在尝试学习技巧。

4

1 回答 1

0

我看到两个选项。

  1. 在测试期间将 Audio 对象作为属性 + 传递给您的测试组件,您将创建Sinon 的存根或间谍并将其作为假依赖传递给组件。
  2. 从 9.3.0 版本开始,jsDOM 似乎支持 Audio constructor。因此,您可以在测试中 通过 jsDOM 模拟浏览器环境。
于 2016-07-11T08:09:13.960 回答