我们使用带有expect(document.activeElement).toBe(myElement)
模式的笑话测试来确定元素在交互后是否正确聚焦。在升级到jest 25(jsdom 15)之后,所有这些测试都失败了,document.activeElement
似乎总是null
。
例如,以下测试适用于Jest 24.x,但不适用于25.x
// example.spec.js
import * as React from 'react';
it('should find active element', () => {
const wrapper = mount(<input />);
const inputNode = wrapper.find('input').getDOMNode();
inputNode.focus();
expect(document.activeElement).toBe(inputNode); // fails with 'expected' being null
});
使用Jest 25.x测试元素是否聚焦的最佳方法是什么?