일부 react-bootstrap
구성 요소, 특히 Modal
및 이름이 간격을 둔 하위 구성 요소를 사용하여 구성 요소를 작성합니다. Modal.Heading
(또는 Modal.Title
, Modal.Body
등). 예를 들어하십시오 농담 테스트 스위트 내에서 효소를 사용Enzyme in Jest test를 사용하여 React에서 이름 간격의 하위 구성 요소를 찾습니다.
...
import { Modal } from 'react-bootstrap/lib';
import OtherComponent from './OtherComponent';
class MyComponent extends React.Component {
...
render() {
return (
<div>
<Modal>
<p>{someContent}</p>
<OtherComponent/>
<Modal.Header>{someOtherContent}</Modal.Header>
</Modal>
</div>
);
}
}
나는 DOM 요소 및 기타 사용자 정의 구성 요소 반응을 포함하여 Modal
구성 요소의 다양한 아이를 찾을 수 있습니다. 내가 시도
const modal = shallow(<MyComponent/>).find('Modal');
it('should find the Modal element',() => {
expect(modal).toHaveLength(1); // passes
});
it('should find a child DOM element',() => {
expect(modal.find('p')).toHaveLength(1); // passes
});
it('should find a regular child component',() => {
expect(modal.find('OtherComponent')).toHaveLength(1); // passes
});
it('should find a name-spaced child component',() => {
expect(modal.find('Modal.Header')).toHaveLength(1); // fails *****
});
: 그러나 나는 이름 간격 하위 구성 요소를 찾을 수 없습니다 즉, 네임 스페이스를 떠나,
.find('Header')
위의 그림과 같이
.find('Modal.Header')
, 즉 네임 스페이스를 포함하여,shallow(<MyComponent/>)
대신에 상기find
옵션과 조합하여
그렇다면 Enzyme을 사용하여 이름이 지정된 하위 구성 요소를 찾는 방법은 무엇입니까?