使用 jest-axe 进行自动化测试
在构建 Web 应用程序时,确保可访问性应该与提供功能或修复错误一样重要。jest-axe 等自动化测试工具可让您在开发早期轻松发现常见的可访问性问题。
jest-axe 是什么?
`jest-axe` 是一个基于可访问性引擎构建的 Jest 匹配器。它允许您测试渲染的组件是否存在可访问性违规,并与您现有的 Jest 测试套件无缝集成。
为什么要尽早发现可访问性问题?
在开发过程的早期解决可访问性错误至关重要,原因如下:
设置 jest-axe
首先,安装包:
npm install --save-dev jest-axe
接下来,将其添加到您的测试文件中:
import { axe, toHaveNoViolations } from 'jest-axe'; expect.extend(toHaveNoViolations);
编写基本测试
以下是如何测试简单组件的可访问性的示例:
import React from 'react'; import { render } from '@testing-library/react'; import { axe } from 'jest-axe'; function Button() { return ; } describe('Button component', () => { it('should have no accessibility violations', async () => { const { container } = render(); const results = await axe(container); expect(results).toHaveNoViolations(); }); });
测试 Vue 组件
如果你正在使用 Vue,那么 `jest-axe` 集成起来同样容易。以下是示例:
import { mount } from '@vue/test-utils'; import { axe, toHaveNoViolations } from 'jest-axe'; expect.extend(toHaveNoViolations); const Button = { template: '' }; describe('Button component (Vue)', () => { it('should have no accessibility violations', async () => { const wrapper = mount(Button); const results = await axe(wrapper.element); expect(results).toHaveNoViolations(); }); });
好处
限制
总结
通过将“jest-axe”添加到您的测试套件中,您朝着构建可访问的 Web 应用程序迈出了坚实的一步。但是,请记住,没有任何工具可以保证完全的可访问性。将自动化测试与手动检查和用户测试相结合可获得最佳效果。
祝测试愉快!