최근에 ES6을 사용하지 않는 작업을 프로젝트에 적용했습니다. 저는 ES6 배경을 가지고 있으며 ES6을 사용하지 않고 테스트하는 방법을 이해할 수없는 큰 파일을 작성했습니다.개인 반응 구성 요소를 테스트하는 방법
기본적으로 필자는 주요 구성 요소를 가지고 있는데,이 구성 요소는 약 7 개 정도의 개인 구성 요소가 있으며 대부분 독해력, 테스트 및 성능을 위해 별도의 구성 요소로 구축됩니다.
내 개인 구성 요소를 내 보내지 않고 내가 시험을을 쓸 수있는 방법을 찾을 수 없습니다 : 여기
(개인 구성 요소에해야 요소 업데이트를 할 수 있다는 것은 큰 도움 것은) 내 문제입니다.
우리가 ES6를 사용하지 않기 때문에, 나는
export default MyComponent
export PrivateComponent1
export PrivateComponent2
구문을 사용하지 못할, 하나의 파일에서 여러 구성 요소를 내보낼 내가 아는 유일한 방법은 사용하는 것입니다
exports.MyComponent = MyComponent
exports.PrivateComponent1 = PrivateComponent1
exports.PrivateComponent2 = PrivateComponent2
그러나이 좋은 결과가 아니므로 사용해야합니다. 사용해야 할 진술 문이 있습니다.
const MyComponent = require('MyComponent').MyComponent
이상적으로 저는 뭔가를 사용하고 싶습니다. ike :
module.exports = MyComponent
exports.PrivateComponent1 = PrivateComponent1
exports.PrivateComponent2 = PrivateComponent2
하지만 그건 유효하지 않습니다.
또한이 파일을 별도의 파일로 나누지 않는 것이 좋습니다.
...이 내가 TDD :(
왜 한 파일에 여러 구성 요소가 있습니까?각각의 구성 요소를 하나의 다른 구성 요소에서만 사용하는 경우에도 각 구성 요소를 자체 파일로 추상화하는 것이 이상적입니다. 추상화 계층에는 고유 한 이점이 있습니다. 각 구성 요소를 개별적으로 내보낼 수 있고 여러 파일을 하나의 파일 문제로 처리하지 않을 수 있습니다. – finalfreq
구성 요소가 매우 세밀 해져서 가독성, 성능 및 디버깅에 도움이된다고 생각합니다. 그들은 더 작은 부품들로 폴더를 오염시키고 싶지 않았습니다. – MichaelTaylor3D
그럴 경우 유일한 옵션은 키/값 쌍을 가진 객체를 내보내고'const MyComponent = require ('MyComponent')해야한다는 것입니다. MyComponent' – finalfreq