我想给组件发短信。我有选择的形式和文本的段落。当我从选择6中选择时,该段落将文本更改为“ 6件”。当我从选择9中选择时,该段落将文本更改为“ 9个”等。
问题是,它只能在第一次使用。关于第二个,我在段落中有旧文本。如何刷新每个选择的更改?
const { getByTestId } = renderForm();
const textElem = getByTestId('text');
const select = getByTestId('select');
fireEvent.change(select, { target: { value: '6' } });
// works fine
expect(textElem).toHaveTextContent('6 pieces');
fireEvent.change(select, { target: { value: '9' } });
// is still 6 pieces
expect(textElem).toHaveTextContent('9 pieces');
我也尝试过表演,但结果却相同:
act(()=>{
fireEvent.change(select, { target: { value: '6' } });
});
// works fine
expect(textElem).toHaveTextContent('6 pieces');
act(()=>{
fireEvent.change(select, { target: { value: '9' } });
});
// is still 6 pieces
expect(textElem).toHaveTextContent('9 pieces');
我也尝试过rerender
-相同的结果。
答案 0 :(得分:0)
触发更改后,您需要执行一个新的getByTestId()
并对此进行断言。
fireEvent.change(select, { target: { value: '9' } }); expect(getByTestId('text')).toHaveTextContent('9 pieces')