【发布时间】:2021-11-01 03:43:46
【问题描述】:
我正在尝试测试当我将鼠标悬停在图标上时,会出现带有特定文本的工具提示。
使用 Jest,react 测试库,工具提示是一个 MUI 4 组件。
图标和工具提示
<div
data-testid="tooltip-icon"
className={classes.infoTooltipIcon}
>
<Tooltip
data-testid="tooltip-text"
title="Tooltip text"
>
<InfoIcon/>
</Tooltip>
</div>
瘦身测试
it('has a tooltip on the info icon', () => {
render(<Component />);
const infoIcon = screen.getByTestId('tooltip-icon');
userEvent.hover(infoIcon); // works
const infoTooltip = screen.getByTestId('tooltip-text')
expect(infoTooltip.title).toEqual('Tooltip text);
});
目前,这会导致
actual: undefined
expected: 'Tooltip text'
如果我 screen.debug(infoTooltip) title 在那里并且有正确的文本,但它是 <svg/> 这会导致问题吗?
screen.debug(infoTooltip)的输出
<svg
aria-hidden="true"
class="MuiSvgIcon-root makeStyles-center-52"
data-testid="tooltip-text"
focusable="false"
title="Tooltip text"
viewBox="0 0 24 24"
>
<path
d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"
/>
</svg>
另外,我也试过screen.getByTitle('Tooltip text'),还是不行。
【问题讨论】:
-
你可以尝试使用
queryByTestId而不是getByTestId吗? -
同样的事情,
actual: undefined,我已经发布了screen.debug()的输出
标签: reactjs jestjs material-ui react-testing-library