我正在用酶测试一些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,这是专门用于单元测试的