使用主题道具进行的开玩笑/酶测试不起作用

时间:2019-06-20 06:28:54

标签: javascript reactjs jestjs enzyme styled-components

当我测试以其样式使用主题道具的组件时,主题道具可以在测试中正确呈现,但是测试失败。

使用此测试:

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)' });
});

然后测试通过。

鉴于我正在将主题道具用于许多不同的样式属性,因此我希望能够在测试中使用主题道具。有没有办法使它起作用?谢谢。

0 个答案:

没有答案