反应单元测试 - Enzmye浅

时间:2018-05-02 13:11:39

标签: reactjs jsx enzyme

我正在尝试使用Enzyme在React中设置单元测试。当我运行命令" npm-test"测试失败了。 控制台终端指示由于shallow()而失败。 我已经使用此命令安装了酶npm install --save enzyme enzyme-adapter-react-16 react-test-renderer。有谁知道如何解决这个问题?

以下是组件

import React from 'react';

    class Login extends Component {
      render() {
        return <div><input
          onChange={(event) => {
             this.setState({input: event.target.value})}}
          type="text" /></div>;
      }
    }

    export default Login;

这是我为Component编写的单元测试。

import React from 'react';
import { configure, shallow } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';

import Login from '../../../src/components/authentication/Login';
import Enzyme from 'enzyme';

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

  it("should create an entry in component state with the event value", () => {
    // given
    const component = shallow(<Login/>);
    const form = component.find('input');
    // when
    form.props().onChange({target: {
      name: 'myName',
      value: 'myValue'
    }});
    // then
    expect(component.state('input')).toEqual('myValue');
  });

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你好,也许你会错过这些惯例:

您必须将测试文件放在__tests__目录中,并且测试文件应该命名为:YourComponent.test.js

将测试包装在测试套件中:

describe('Your test suite', () => {
  test('it should do something', () => {
   // the content of your test
  });
});