Reactjs 如何测试React元素的特定css属性值?

Reactjs 如何测试React元素的特定css属性值?,reactjs,jestjs,enzyme,emotion,Reactjs,Jestjs,Enzyme,Emotion,我想用酶检查特定的css属性值。为组件设置样式,使用了情感css助手 让我们假设下一种情况: it('title has font-size 20px', () => { const titleCss = css` font-size: 20px; `; const mountedTitle = mountWithTheme(<h1 className={titleCss}>Title</h1>); expect(mountedTitle

我想用酶检查特定的css属性值。为组件设置样式,使用了情感css助手

让我们假设下一种情况:

it('title has font-size 20px', () => {
  const titleCss = css`
    font-size: 20px;
  `;

  const mountedTitle = mountWithTheme(<h1 className={titleCss}>Title</h1>);

  expect(mountedTitle).toHaveStyleRule('font-size', '20px');
});
it('标题的字体大小为20px',()=>{
常数titleCss=css`
字体大小:20px;
`;
const mountedTitle=mountWithTheme(标题);
期望(mountedTitle).toHaveStyleRule('font-size','20px');
});
在这里:

  • mountWithTheme——只是一个包装在渲染方法上,但允许传递主题

  • toHaveStyleRule是匹配器

那不行,我知道了

未找到属性:字体大小

若你们看一下jest情感,你们会看到那个里使用了“样式化”的包装器,所以包装器组件被创建了,但“css”助手并不是这样


我还考虑过使用Ezyme render helper来创建实际的html,但cheerio wrapper似乎也无法访问css值。

如果您使用的是Ezyme,请使用
render
方法

import React from 'react';
import { render } from 'enzyme';
import Component from '.';

describe('test css', () => {
  it('test font size', () => {
    const wrapper = render(<Component />);
    expect(wrapper.find('h1')).toHaveStyleRule('font-size', '20px');
  });
});
从“React”导入React;
从“酶”导入{render};
从“”导入组件;
描述(‘测试css’,()=>{
它('测试字体大小',()=>{
const wrapper=render();
expect(wrapper.find('h1')).toHaveStyleRule('font-size','20px');
});
});

如果您使用的是酶,请使用
渲染方法

import React from 'react';
import { render } from 'enzyme';
import Component from '.';

describe('test css', () => {
  it('test font size', () => {
    const wrapper = render(<Component />);
    expect(wrapper.find('h1')).toHaveStyleRule('font-size', '20px');
  });
});
从“React”导入React;
从“酶”导入{render};
从“”导入组件;
描述(‘测试css’,()=>{
它('测试字体大小',()=>{
const wrapper=render();
expect(wrapper.find('h1')).toHaveStyleRule('font-size','20px');
});
});

不确定,但可能是
fontSize
?@Alex,不,相同的错误。不确定,但可能是
fontSize
?@Alex,不,相同的错误。