我是个新手,从来没有用过jest library(@testing-library)。我只是想知道是否可以在测试代码中更新props。
下面是我的示例tsx代码:
const Dropdown : React.FC<IDropdownProps> = ({initialValue, items, selected, onSelect}) => {
return (
<div>
<div data-testid="test-dropdown">{selected || initialValue}</div>
<ul>
{items.map((el) => {
return (
<li
key={"a" + el.id}
onClick={onSelect}
role="list"
>
{el.name}
</li>
)
})}
</ul>
</div>
)
}
下面是我的测试代码:
const items = [{id : 1, name : "1"},{id : 2, name : "2"}];
const initialValue = "Select"
test("Testing", () => {
const onSelectMock = jest.fn();
expect(screen.getByTestId('test-dropdown')).toHaveTextContent('Select');
const obj = render(<Dropdown items={items} initialValue={initialValue} onSelect={onSelectMock(items[1])} />);
fireEvent.click(el[1]);
expect(screen.getByTestId('test-dropdown')).toHaveTextContent('2');
});
触发事件后,我想更新选定的 prop ,将其更改为“选择”为“2”,这是下拉组件的属性。
如果是错的,请你给我推荐一下测试方法好吗?
2条答案
按热度按时间2vuwiymt1#
您可以使用
render
调用公开的rerender
方法:您也可以查看测试库文档here
3mpgtkmj2#
你可以检查下面的方法来动态测试你的回调函数。并触发重新渲染