小编Gam*_*ix1的帖子

在反应测试库中没有从 .toHaveBeenCalledTimes() 获得预期结果

无论如何,尝试测试函数在触发后是否被调用。当我从该函数中得到 a 时,它fireEvent正在工作。console.log但.toHaveBeenCalledTimes(1)返回 0。我错过了什么?

\n\n

如果我handleLoginSubmit在父级中有该函数并将其作为支柱传递给子级,并且在测试中一切都会通过。但如果它在同一个组件中,则会失败。使用打字稿(如果有任何意义的话)。

\n\n

这是经过测试的

\n\n
import React, { FC } from 'react';\n\ntype Event = React.FormEvent<HTMLFormElement>;\n\ninterface Login {\n  handleLoginSubmit?: (event: Event) => React.ReactNode;\n}\n\nconst Login: FC<Login> = () => {\n  const handleLoginSubmit = (_event: Event) => {\n    console.log('Firing' ); // This is logged\n  };\n\n  return (\n    <form data-testid='form' onSubmit={(event) => handleLoginSubmit(event)}>\n      <input data-testid='email'/>\n      <input data-testid='password'/>\n      <button data-testid='login-button'>login</button>\n    </form>\n  );\n};\n\nexport default Login;\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的提交测试

\n\n
  it('should handle ClickEvents', () => {\n\n …
Run Code Online (Sandbox Code Playgroud)

unit-testing reactjs jestjs react-testing-library

7
推荐指数
1
解决办法
1万
查看次数

从最后一行创建片段/实时模板还是复制粘贴?

有没有办法创建自己的片段/实时模板,以获取最新创建的变量或复制的最新变量?我知道如何制作常规的“硬编码”片段,但不知道如何制作动态片段。

前任:

const amount = 1000;
log -> press tab (snippet) -> console.log("amount: ", amount) // "amount: 1000"
Run Code Online (Sandbox Code Playgroud)

intellij-idea phpstorm webstorm

1
推荐指数
2
解决办法
269
查看次数