Javascript reactjs-酶的单元测试

Javascript reactjs-酶的单元测试,javascript,reactjs,unit-testing,enzyme,jsdom,Javascript,Reactjs,Unit Testing,Enzyme,Jsdom,我对react还是个新手,正在尝试对react组件中的以下代码进行单元测试 import React,{Component} from 'react'; const styleSheet = document.styleSheets[0]; const keyframes = `@-webkit-keyframes pulse { 0% { transform: scale(0.9); opacity: 0.6; } 50% {

我对react还是个新手,正在尝试对react组件中的以下代码进行单元测试

import React,{Component} from 'react';

const styleSheet = document.styleSheets[0];

const keyframes =
  `@-webkit-keyframes pulse {
    0% {
      transform: scale(0.9);
      opacity: 0.6;
    }
    50% {
      transform: scale(1);
      opacity: 1;
    }
    100% {
      transform: scale(0.9);
      opacity: 0.6;
    }
  }`;

styleSheet.insertRule(keyframes, styleSheet.cssRules.length);
const style = {
  animation: 'pulse 5.5s infinite ease-in-out'
};

class someclass extends Component {

  render() {
    return (    
      <svg style={style}>

      </svg>
    );
  }
}

export default someclass;

我怎么能嘲笑他们?提前感谢

当我想检查长度时,我会这样做:

expect(wrapper.find('svg').length).to.equal(1);
此外,请确保将您的导入写入:

import someclass from '.../src/components/someclass';
因为你的是:

import someclassfrom '.../src/components/someclass';
请注意,组件名称和from之间没有空格

我希望这对你有帮助


编辑:我忘了提到,使用大写字母作为组件名称,React使用它来确定它是自定义组件。

当我想检查长度时,我会这样做:

expect(wrapper.find('svg').length).to.equal(1);
此外,请确保将您的导入写入:

import someclass from '.../src/components/someclass';
因为你的是:

import someclassfrom '.../src/components/someclass';
请注意,组件名称和from之间没有空格

我希望这对你有帮助


编辑:我忘了提到,使用大写字母作为组件名称,React使用它来知道它是一个自定义组件。

@pj013用于组件的单元测试。您可以使用Jest+酶组合:

expect(wrapper.find('svg').length).toEqual(1);


@pj013用于组件的单元测试。您可以使用Jest+酶组合:

expect(wrapper.find('svg').length).toEqual(1);


您是否尝试过在组件定义之前简化内容并注释掉样式处理代码?您是否尝试过在组件定义之前简化内容并注释掉样式处理代码?这是错误的,
toEqual
toBe
是不同的
toBe
将为具有相等值的两个不同对象实例返回
false
,而
toEqual
将返回true。请不要混淆其他用户:这是错误的,
toEqual
toBe
是不同的
toBe
将为具有相等值的两个不同对象实例返回
false
,而
toEqual
将返回true。请不要混淆其他用户: