2016-07-11 3 views
1

Я пытаюсь построить набор тестов для моего приложения-приложения. Компонент в приложении используется Audio:Тестирование на реакцию с Enzyme/Mocha - Аудио не определено

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

, который работает в браузере, но в соответствии с this, не на Node.js. Поэтому, когда я использую фермент, чтобы попытаться оказать компоненту он дает ошибку:

ReferenceError: Audio is not defined 

Я новичок в тестировании, но есть способ обойти это? Могу ли я каким-то образом высмеять объект, чтобы взять Audio? Я новичок в модульном тестировании font-end/javascript, поэтому я все еще пытаюсь изучить трюки.

ответ

0

Я вижу два варианта.

  1. Передайте аудио объект в свой тестовый компонент как свойство + во время теста, вы создадите Sinon's stub or spy и передадите его компоненту как поддельную зависимость.
  2. Since version 9.3.0, jsDOM seem to support Audio constructor. Таким образом, вы можете simulate browser environment via jsDOM в своем тесте.