У меня есть набор модульных тестов для моего веб-приложения, которые запускаются с использованием Mocha и jsdom. Я использую jsdom вместо реального браузера, чтобы мои модульные тесты mocha выполнялись как можно быстрее, и у нас будут интеграционные тесты, которые будут запускать селен, который будет тестировать больше реальных браузерных вещей. Я также использую istanbul для создания отчетов о покрытии кода, однако некоторый код нельзя протестировать с помощью Mocha/jsdom. Возьмите этот код, например:
var myObject = {
//...
/* istanbul ignore next */
_resizeEvent: function() {
if(this.props.isActive) {
//.9 match the scss max-height: 90%, this value needs to be kept in sync with the sass code
this.getDOMNode().querySelector('.modal__content').style.maxHeight = Math.floor(window.innerHeight * .9) + 'px';
this.getDOMNode().querySelector('.modal__content').style.maxWidth = Math.floor(window.innerWidth * .9) + 'px';
this._centerPosition();
}
},
//...
}
Поскольку реального браузера нет, этот метод нельзя проверить с помощью jsdom. Проблема, с которой я сталкиваюсь, заключается в том, что, хотя у меня есть /* istanbul ignore next */
перед методом объекта, он все равно говорит мне, что код внутри метода не покрыт (вместо того, чтобы просто сказать мне, что он игнорируется).
Есть ли простой способ полностью игнорировать методы объекта и все его содержимое без добавления /* istanbul ignore next */
перед каждым оператором в методе?