Итак, я пишу несколько тестов для кода, который добавляет событие клика в документ. Я использую JSDom, ReactJS и Mocha/Chai. Я пробовал следующий код в тесте:
document.addEventListener('click', function() {
console.log('test');
});
React.addons.TestUtils.Simulate.click(document);
//also tried React.addons.TestUtils.Simulate.click(document.body);
однако этот код не вызывает ожидаемое эхо.
Есть ли способ имитировать щелчок, клавиатуру и т.д. в документе с помощью JSDom и ReactJS?
UPDATE
Ответ Ник, я попытался добавить этот код к тесту:
document.body.addEventListener('click', function() {
console.log('test');
});
document.body.click();
и я до тех пор, пока не получаю вывод журнала консоли. Я не уверен, есть ли какая-то проблема с JSDom и делаю такие вещи.
Если я не могу unit test этот код, это хорошо, уже есть код, который я не могу unit test прямо сейчас (код, для которого требуется реальная DOM, чтобы получить ширину, высоту и т.д...) но я хотел бы иметь возможность unit test большей части кода (и я не заинтересован в использовании PhantomJS для модульного тестирования). Мои интеграционные тесты будут охватывать этот тип кода.
UPDATE2
Другое дело, что при я console.log(document);
я вижу объект, привязанный к свойству _listeners
для click
, поэтому я знаю, что событие привязано, оно просто не выполняется.