Метод axe.reset используется для восстановления
внутреннего состояния библиотеки после выполнения тестов на доступность.
В контексте автоматизированного тестирования это критически важно для
предотвращения накопления данных о предыдущих проверках, которые могут
повлиять на последующие тесты.
axe.reset очищает конфигурацию и результаты предыдущих
запусков, возвращая библиотеку в исходное состояние. Его применение
особенно актуально в следующих сценариях:
Без вызова axe.reset предыдущие данные могут сохраняться
в памяти, вызывая ложные срабатывания или некорректные результаты
анализа.
axe.reset();
undefined.Метод является синхронным, поэтому его вызов блокирует дальнейшее использование библиотеки до завершения очистки внутреннего состояния.
axe.configure().axe.registerRule(), они остаются, но их активность
пересчитывается согласно текущей конфигурации.Важно понимать, что
axe.resetне удаляет DOM-элементы и не влияет на состояние веб-страницы. Его задача — чисто логическая, касающаяся внутреннего состояния библиотеки.
Пример 1: последовательные проверки на одной странице
import axe from 'axe-core';
async function runTests() {
await axe.run(document, {}, (err, results) => {
console.log('Первый тест', results.violations.length);
});
axe.reset();
await axe.run(document.querySelector('#dynamic-section'), {}, (err, results) => {
console.log('Второй тест', results.violations.length);
});
}
runTests();
В этом примере первый и второй тест полностью независимы друг от
друга благодаря вызову axe.reset.
Пример 2: интеграция с Cypress
cy.visit('/page');
cy.injectAxe();
cy.checkA11y(); // первый тест
cy.window().then(win => {
win.axe.reset();
});
cy.get('#new-content').checkA11y(); // второй тест на новом контенте
Здесь axe.reset позволяет корректно анализировать
динамически подгруженный блок контента без влияния предыдущего
состояния.
axe.reset не удаляет зарегистрированные правила, но их
конфигурация может быть пересчитана.axe.clear()Метод axe.clear() также очищает результаты предыдущего
запуска, однако:
axe.clear() не сбрасывает конфигурацию библиотеки.axe.reset() выполняет полный сброс внутреннего
состояния, включая настройки, что делает его предпочтительным для
последовательных и изолированных тестов.Использование axe.reset обеспечивает максимальную
предсказуемость при сложных сценариях автоматизированного тестирования и
снижает риск ложноположительных результатов при проверке
доступности.
Метод axe.reset является ключевым инструментом для
поддержания чистоты внутреннего состояния Axe-core при многоэтапных и
динамических проверках доступности в JavaScript.