当我测试以其样式使用主题道具的组件时,主题道具可以在测试中正确呈现,但是测试失败。
使用此测试:
import theme from './theme.js';
it('should display on mobile ', () => {
wrapper = renderer.create(<HamburgerIcon theme={theme} />).toJSON();
expect(wrapper).toHaveStyleRule('display', 'flex', { media: `(max-width:${theme.mobile})` });
});
我收到此错误:
使用以下选项在传递的组件上找不到样式规则: {“ media”:“(最大宽度:500像素)”}
因此,似乎正在将(max-width:${theme.mobile})
转换为正确的px值,但没有将任何样式与该值匹配。
如果我将样式组件中的媒体查询更改为@media (max-width: 500px)
,然后进行测试,如下所示:
it('should display on mobile ', () => {
wrapper = renderer.create(<HamburgerIcon theme={theme} />).toJSON();
expect(wrapper).toHaveStyleRule('display', 'flex', { media: '(max-width: 500px)' });
});
然后测试通过。
鉴于我正在将主题道具用于许多不同的样式属性,因此我希望能够在测试中使用主题道具。有没有办法使它起作用?谢谢。