Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何测试已调用的blur()?_Javascript_Unit Testing_Jestjs - Fatal编程技术网

Javascript 如何测试已调用的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

如何测试是否使用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()
  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元素请告诉我答案是否有效: