我用酶测试一些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);
});
})
})
答案 0 :(得分:2)
我认为为了访问子组件,你需要使用mount,你使用的是Shallow,它是专门用于单元测试的