Bru*_*sma 5 javascript reactjs react-testing-library
我正在使用这个组件:
<AceEditor
value={data}
className="code-editor"
mode="json"
theme="dracula"
onChange={setData}
name="data"
height="320px"
width="100%"
editorProps={{ $blockScrolling: true }}
showPrintMargin={false}
highlightActiveLine={false}
/>
Run Code Online (Sandbox Code Playgroud)
那么,使用react-testing-library如何获取这个组件并触发onChange事件?我试图找到一些像getByComponentName或类似的函数,但没有成功。
在 RTL 中,你实际上不会这样做。
建议的方法是模拟用户会做什么。例如,如果AceEditor呈现 a,textarea您可以使用它fireEvent.change来模拟用户键入。此时,您的组件将触发onChange事件并像在生产中一样做出反应。
某些第三方组件可能很难用这种方法进行测试,因为它们具有您无法控制的内部结构。在这些情况下,我建议只是模拟它们。最后,它们已经由维护者进行了测试。
在您的情况下,您可以使用jest.mock并渲染 atextarea而不是编辑器。
| 归档时间: |
|
| 查看次数: |
4424 次 |
| 最近记录: |