JavaScript/TypeScript Unit Testing 하기
우선 mocha & chai로 ..
unit-testing typescript mocha
Mocha
Mocha 기본
Mocha로 Typescript 테스트하기
- 참조링크
- mocha는 javscript는 바로 테스트 할 수 있지만 typescript는 바로는 안된다
- 약간의 환경 설정이 필요하다
- 우선
ts-node
가 필요하다-
ts-node
란?- TypeScript 실행과 REPL 환경을 제공한다. 메모리상에서 js ▶ ts 트랜스파일을 해서 실행한다고 한다
-
Mocha 에서 test/
디렉토리란? (번역)
- 참조링크 : The test/ directory, mochajs.org
- 기본적으로,
mocha
는 glob"./test/*.{js,cjs,mjs}"
를 찾기 때문에- 당신은 테스트를
test/
folder에 넣기를 원할 것이다 - (잠깐만) glob 란? : glob, ZVON.org
- 간단하게, wildcard 특수문자를 사용하여 만든 확장가능한 문자열, Unix Convention의 일종
- 당신은 테스트를
- 만약 subdirectory들 까지 테스트하려고 한다면,
-
--recursive
option 을 추가한다
-
-
mocha
가 테스트 찾는 위치를 설정하려고 한다면, 당신만의 glob을 넘겨줘도 된다1
$ mocha --recursive "./spec/*.js"
- 어떤 shell 들은 globstar(
**
) wildcard 를 이용하여 반복되는 matching을 제공한다- Bash >=4.3 은
globstar
option 옵션을 제공하는데, ..- (잠깐만) globstar 옵션 번역 (위 링크에서
globstar
옵션 위치를 찾아야 함)- 설정되면,
**
패턴이 filename expansion context에서 사용되어 모든 파일에 매칭되며, - zero 개 이상의 directory와 subdirectories 에도 매칭된다.
- 패턴에
/
이 따라 붙게되면,- (파일은 제외하고) directories와 subdirectories에만 매칭된다
- 설정되면,
- (해당 옵션은)
--recursive
옵션을 설정한 것과 같은 결과를 내기 위해서 반드시 enable되어야 한다 ( ZSH 와 Fish 은 이것을 기본적으로 지원한다) - recusive matching이 enable 된 상태에서, 아래 실행 결과는
--recursive
결과와 동일하다1
$ mocha "./spec/**/*.js"
- (잠깐만) globstar 옵션 번역 (위 링크에서
- Bash >=4.3 은
-
npm script에서는 glob에 항상 따옴표를 붙여야 한다
- 이중 따옴표 (doubel quotes)을 사용한다면, UNIX shell이 glob의 확장을 수행할 것이다
- 단일 따옴표 (single quotes)을 사용한다면,
node-glob
module이 확장을 수행할 것이다
- glob을 사용할 때, 이 tutorial을 봐라