Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 失败的Jest单元测试_Javascript_Reactjs_Unit Testing_Jestjs - Fatal编程技术网

Javascript 失败的Jest单元测试

Javascript 失败的Jest单元测试,javascript,reactjs,unit-testing,jestjs,Javascript,Reactjs,Unit Testing,Jestjs,我有一个为其编写测试的组件。它工作得很好,但现在有些地方出了问题,我不知道是什么 这是一个简单的组件,它接受两个数字并返回它们的和: import 'bootstrap/dist/css/bootstrap.css'; import 'bootstrap/dist/css/bootstrap-theme.css'; import React from 'react'; import ReactDOM from 'react-dom'; import { LogOutButton } from '

我有一个为其编写测试的组件。它工作得很好,但现在有些地方出了问题,我不知道是什么

这是一个简单的组件,它接受两个数字并返回它们的和:

import 'bootstrap/dist/css/bootstrap.css';
import 'bootstrap/dist/css/bootstrap-theme.css';
import React from 'react';
import ReactDOM from 'react-dom';
import { LogOutButton } from './LogOutButton.js';

class Home extends React.Component {
displayName = Home.name;

state = {
  result: 0,
  val1: 0,
  val2: 0,
};

handleChangeOne = event => {
  this.setState({ val1: event.target.value });
};

handleChangeTwo = event => {
  this.setState({ val2: event.target.value });
};

add = () => {
  this.setState({ 
    result: parseInt(this.state.val1) + parseInt(this.state.val2)
  });
};

onLogoutClick = () => {
  window.location.href = 'https://www.MICROSOFT.com';
}

render() {
  return (
    <div>
      <h1>Hello world! The result is: {this.state.result}</h1>
      <input type="text" onChange={this.handleChangeOne} />
      +
      <input type="text" onChange={this.handleChangeTwo} />
      = <br />
      <button onClick={this.add}>Add</button>
      <br/><br/> 
      <LogOutButton onLogout={this.onLogoutClick} /> 
    </div>
  );
}
}

  export default Home;

这是怎么回事?我尝试了几种方法,但到目前为止没有任何效果。

你的应用程序编译正常吗?您是否有针对应用程序和测试的单独babel配置

我认为Jest抱怨使用字段声明语法的行,这是第3阶段的建议

无论如何,
displayName
是类属性IIRC,所以我认为应该使用
static
关键字调用它,如下所示:

static displayName = Home.name;

虽然我不知道这条线应该做什么,你能详细说明一下吗

为了让您的测试运行,我必须在
package.json中添加这个:

"enzyme-adapter-react-16": "1.6.0"
在测试中:

import Enzyme, { shallow } from 'enzyme';
import Adapter from "enzyme-adapter-react-16";

Enzyme.configure({ adapter: new Adapter() });
然后考试通过了

请注意,我在CRA 2.1环境中对此进行了测试

您好,您是否尝试将静态关键字添加到displayName属性中?
"enzyme-adapter-react-16": "1.6.0"
import Enzyme, { shallow } from 'enzyme';
import Adapter from "enzyme-adapter-react-16";

Enzyme.configure({ adapter: new Adapter() });