【发布时间】:2019-11-21 14:24:21
【问题描述】:
在我的应用程序中,我进行了如下所示的测试,但是单击后,即使手动测试的行为有效,该语句也不正确:
import React, { useState } from 'react'
import { mount } from 'enzyme'
const Conceito = () => {
const [alerta, setAlerta] = useState(false)
const pesquisarOnClick = () => {
setTimeout(() => setAlerta(true), 500)
}
return (
<div>
{ alerta && <div data-component="Alerta">Mensagem</div> }
<button
action-trigger="pesquisar"
onClick={pesquisarOnClick}
>Pesquisar</button>
</div>
)
}
describe('<Conceito/>', () => {
it('prova de conceito', async () => {
const wrapper = mount(<Conceito/>)
expect(wrapper.find(`[data-component='Alerta']`)).toHaveLength(0)
wrapper.find(`[action-trigger='pesquisar']`).simulate(`click`)
await wrapper.update()
expect(await wrapper.find(`[data-component='Alerta']`)).toHaveLength(1)
})
})
我的错误在哪里?
【问题讨论】:
-
``` lang-js import { render, fireEvent, waitForElement } from '@testing-library/react' describe('
', () => { it('prova de conceito', async () => { const { container } = render( ) expect(container.querySelector("[data-component='Alerta']")).toBeNull() fireEvent.click(container. querySelector("[action-trigger='pesquisar']")) expect(awaitwaitForElement(() => container.querySelector("[data-component='Alerta']"))).not.toBeNull() }) }) ```
标签: reactjs async-await settimeout enzyme