酶不能找到React成分

时间:2016-08-31 01:55:25

标签: javascript reactjs enzyme

我用酶测试一些React组件,但是我无法在"包装组件中找到特定的组件"我正在测试。

我试过像this link那样教学,但是没有用。

那是我的代码:

Todo.js

import React, { PropTypes } from "react";
import TodoText from "./../containers/todo-text"

class Todo extends React.Component{
  (...)

  render(){

    return(
     <li className={todoClasses}>
      (...)
      <TodoText todoId={this.props.todoId} text={this.props.text} />
      (...)
     </li>
    );
  }

};

export default Todo;

待办事项-test.js

import expect from 'expect';
import React from 'react';
import { shallow } from 'enzyme';
import Todo from '../path-to/todo.js';
import TodoText from '../path-to/todo-text.js';

function setup() {
  const props = {(...)};

  const enzymeWrapper =  shallow(<Todo {...props} />);

  return {
    props,
    enzymeWrapper
  }
}

describe('components', () => {
  describe('Todo', () => {
    it('should render self and subelements', () => {
      const { enzymeWrapper, props } = setup();

      (...)
      expect(enzymeWrapper.find(TodoText).length).toBe(1);
    });
  })
})

1 个答案:

答案 0 :(得分:2)

我认为为了访问子组件,你需要使用mount,你使用的是Shallow,它是专门用于单元测试的