reactjs - 使用 React 测试库和 Jest 测试悬停在悬停操作之前显示属性
问题描述
我一直在摸不着头脑,并没有真正找到任何可靠的文档说明为什么当我使用 userEvent.hover 时,测试不是显示悬停框阴影的预期测试。我曾尝试将 mouseEnter 和 mouseOver 与 fireEvent 一起使用,但无济于事。正如您在下面看到的,我还尝试将它包装在一个没有帮助的异步函数中。有任何想法吗?是因为转型吗?
先感谢您。
transition: all 0.2s ease-in-out;
box-shadow: rgba(0, 0, 0, 0.07) 0px 1px 1px, rgba(0, 0, 0, 0.07) 0px 2px 2px,
rgba(0, 0, 0, 0.07) 0px 4px 4px, rgba(0, 0, 0, 0.07) 0px 8px 8px,
rgba(0, 0, 0, 0.07) 0px 16px 16px;
&:hover {
transform: scale(1.05);
transform: translate(0, -0.1rem);
box-shadow: rgba(0, 0, 0, 0.19) 0px 10px 20px,
rgba(0, 0, 0, 0.23) 0px 6px 6px;
}
这是测试:
it("should expect the button to shift box-shadow on hover", async () => {
const { getByRole } = render(
<PrimaryButton aria-label="sign up">Sign Up</PrimaryButton>
);
userEvent.hover(screen.getByText(/sign up/i));
await waitFor(() => {
expect(getByRole("button", { name: /sign up/i })).toHaveStyle(
"box-shadow: rgba(0, 0, 0, 0.19) 0px 10px 20px, rgba(0, 0, 0, 0.23) 0px 6px 6px;"
);
});
});
这是我的 RTL/Jest(测试)的结果:
- box-shadow: rgba(0, 0, 0, 0.19) 0px 10px 20px, rgba(0, 0, 0, 0.23) 0px 6px 6px;
+ box-shadow: rgba(0,0,0,0.07) 0px 1px 1px,rgba(0,0,0,0.07) 0px 2px 2px, rgba(0,0,0,0.07) 0px 4px 4px,rgba(0,0,0,0.07) 0px 8px 8px, rgba(0,0,0,0.07) 0px 16px 16px;
53 | userEvent.hover(screen.getByText(/sign up/i));
54 | await waitFor(() => screen.getByText(/sign up/i));
> 55 | expect(getByRole("button", { name: /sign up/i })).toHaveStyle(
| ^
56 | "box-shadow: rgba(0, 0, 0, 0.19) 0px 10px 20px, rgba(0, 0, 0, 0.23) 0px 6px 6px;"
57 | );
58 | });
如您所见,它表明我的盒子阴影应该是悬停之前的阴影。代码工作正常,可以编译和渲染。
解决方案
推荐阅读
- c++ - 删除动态 cstring 时程序崩溃
- amazon-web-services - 是否可以为 AWS 上的每个子域设置单独的 cname 记录
- unix - awk:根据另一列的值有条件地更改字段的值
- r - 转换为 realRatingMatrix 后数据看起来不同
- php - 将文件上传到我的 apache 服务器时出现错误代码 7
- html - 如何将图像添加到我的 CSS 正文背景?
- java - 从 json.JsonArray 获取单个数据参数的问题
- apache-spark - hdfs URI 未解析
- android - Realm交易成功时如何返回值?
- amazon-web-services - Cloudwatch 自定义指标单位为“分钟”