Я пытался покрыть <audio>
тегом автоматическими тестами, чтобы начать с того, чтобы подтвердить, что он играет.Как протестировать звук?
Я использую обычный набор угловых тестов, карму и транспортир.
"devDependencies": {
"karma": "~0.10",
"protractor": "~0.20.1",
"http-server": "^0.6.1",
"bower": "^1.3.1",
"shelljs": "^0.2.6",
"karma-junit-reporter": "^0.2.2",
"grunt": "~0.4.1",
"grunt-contrib-uglify": "~0.2.0",
"grunt-contrib-concat": "~0.3.0",
"grunt-contrib-watch": "~0.4.3"
}
На стороне Карма вопрос, я не мог найти способ, чтобы добавить ресурсы потенциально использовать в тестах, так ни один файл не играть там. Если бы был способ указать на файл для воспроизведения, это не должно было быть проблемой, поскольку я мог просто проверить свойство paused
этого элемента.
На стороне 2e2 есть демонстрационное приложение, которое прекрасно работает, тест может загрузить его просто отлично, и нажатие одной из кнопок не вызывает никаких ошибок (оно вызывает звук при попытке вручную). Однако, глядя в API-интерфейс транспортира, я не мог найти ничего, что могло бы позволить мне убедиться, что звук на самом деле играет или позволяет мне получить доступ к элементу, так как даже document
и angular
недоступны здесь (что имеет смысл как тестирование 2e2) или просто API для проверки свойств элемента.
beforeEach(function() {
browser.get("index.html")
});
it("Ensure the player is playing", function() {
$$("button").first().click();
// what to do?
});
я подумал о возможности насмешливого аудио API и просто поддельные свойства обновляются, но тогда я еще тестирую против моего кода и currentTime
будет очень трудно дразнить точно, когда моя конечная цель заключается в проверку звук в звуковом спрайте начинается и останавливается, когда ожидается.
В идеале я хочу прикрыть это в модульных тестах, где это должно быть, поэтому было бы удобно использовать рабочий ресурс. Так что простое expect(!element[0].paused).toEqual(true);
будет достаточно, чтобы знать, что он играет.
Как я могу служить файлу в своих модульных тестах для использования в качестве источника звука?
Будет ли проверка звуковой метки на 0:00 достаточной? –
В случае, когда вы можете воспроизвести файл, тогда 'paused' должно быть достаточно, и да, проверка' currentTime' не '0' тоже будет работать, но проблема здесь в том, что в тестах нет файла для воспроизведения (может ' t найти способ служить одному), чтобы эти свойства никогда не менялись. – GillesC
ah sorry miss понял, мне будет жалко извините –