less than 1 minute read


블로그 포팅 스크립트 테스트 - 구조 개선, 테스트 추가

테스트 케이스 추가하려니 태그 핸들러를 따로 만들어야 하고, 태그 핸들러를 따로 만들면 핸들러에서 따로 데이터를 받아야 하는데, 이 부분의 스텝들을 어떻게 할지 명확히 해야 한다.

태그 핸들러의 사용처는 두 가지다:

  1. 테스트 케이스에서 트리를 넣어서 태그핸들러 처리 후 태그 노드가 얻어져야 함
  2. 핸들러 트리에서 필요로 하는 데이터를 넣어주고, 태그 노드를 삭제하는 api 제공해야 함

생각해보면, 테스트를 위한 인터페이스를 만들 필요는 없다. 핸들러에서 어떻게 사용하는지만을 생각하면 된다. 이게 어려운건, 핸들러가 뭘 하는지 명확하게 몰라서 그런 듯하다. 핸들러는 트리에 대해 다음과 같은 처리를 한다:

  1. 타이틀이 있고 프론트매터가 없음을 확인, 있다면 변환하지 않는다. 맞다면 타이틀 정보를 저장하고 타이틀 노드를 제거한다.
  2. 태그 노드를 찾아 정보를 저장하고, toc에서 tags 항목, tags 헤딩, tags 노드를 트리에서 제거한다.
  3. 저장된 정보로부터 프론트매터를 생성한다.

테스트 케이스 추가 및 구조 개선 완료. 마지막으로 unified 플러그인에서 파싱하여 추출한 정보를 외부에 내보낼 방법이 없어서 고민하다가, 결국 지역 변수를 이용하여 해당 정보를 할당받은 다음 리턴하는 중간 함수를 만들어서 해결했다. (전역 변수 할당을 피하고자 함)


Comments