我正在用酶测试一些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;


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);
    });
  })
})

最佳答案

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

07-24 16:28