Javascript 如何测试已调用的blur()?
如何测试是否使用jest调用blur 这是我的职责:Javascript 如何测试已调用的blur()?,javascript,unit-testing,jestjs,Javascript,Unit Testing,Jestjs,如何测试是否使用jest调用blur 这是我的职责: blurOnEnter (event) { if (event.keyCode === 13 && !event.shiftKey) event.target.blur() } 这就是我测试它的方法,但我不知道如何处理我的expect语句: it('blurOnEnter() should blur target input field', () => { const blur = jest.fn() wr
blurOnEnter (event) {
if (event.keyCode === 13 && !event.shiftKey) event.target.blur()
}
这就是我测试它的方法,但我不知道如何处理我的expect语句:
it('blurOnEnter() should blur target input field', () => {
const blur = jest.fn()
wrapper = shallow(<Component />)
wrapper.instance().blurOnEnter({
keyCode: 13,
target: { blur }
})
expect(blur.calls.length).toBe(1) // TypeError: Cannot read property 'length' of undefined
})
为什么我会得到TypeError无法读取未定义的属性“length”如何:
it('blurOnEnter() should blur target input field', () => {
const blur = jest.fn()
wrapper = shallow(<Component />)
wrapper.instance().blurOnEnter({
keyCode: 13,
target: { "blur": blur } // see here!
})
expect(blur.mock.calls.length).toBe(1) // and here
})
根据jest mocks的jest mocking文档,jest mocks具有mock属性,而您的原始代码没有使用该属性。您正在模糊哪种类型的标记这是一个textarea元素请告诉我答案是否有效: