TIPS

[TIPS] JEST - 제스트, 테스트 All-in-one 패키지

Gray Park 2020. 9. 12. 09:00
728x90
반응형

Jest는 최근 많이 사용하는 테스트 패키지 ( 혹은 프레임워크 ) 이다. mocha, chai 에 대해 포스팅을 하려고 하다가, 최근에 jest에 대해 알게되어 toy problem을 준비할 겸, 한 번 연습해보았다. 이전에 코드스테이츠 프리코스 마지막 Hiring assessment에서 티리온 라니스터에게 굴욕을 겪었던 걸 떠올리며, 안될 때 내가 원하는 테스트 케이스를 기준으로 돌려보기 위해 jest를 사용해봤다.

 

여담으로 HA를 패스 못해서 인풋을 달라고 요청하였더니 그럴 순 없다는 답변을 받았다. 아마 언젠가는 스스로 테스트 툴을 학습하고 내가 생각하는 테스트 케이스로 테스트를 해보길 원했기 때문은 아닐까. ( 그랬다면 성공했다. )

 

Jest

제스트를 사용하기에 앞서, 설치를 하고 몇 가지 설정을 해주어야 한다. 제스트를 사용하고자 하는 폴더에서, jest를 설치해주자.

나는 miniGames 라는 폴더를 만들고 진행하였다.

npm install --save-dev jest

테스트를 위해 getting-started 에 있는 것처럼 sum.js 파일을 만든다.

const sum = (a, b) => {
	return a + b;
};
export default sum;

해당 코드를 테스트하기 위해, sum.test.js 파일을 만든다.

const sum = require('./sum');

test('adds 1 + 2 to equal 3', () => {
	expect(sum(1, 2)).toBe(3);
});

잘 동작하는 걸 볼 수 있다.

그럼 이제 toy problem을 풀어서 테스트를 해보자. 1번 문제는 딱 봐도 어려워보이니까 2번으로 테스트를 진행해보았다.

const firstNonRepeatedCharacter = require('../02_nonrepeatCharacter/gray');
const refFirstNonRepeatedCharacter = require('./reference');

describe('02_nonrepeatCharacter', () => {
	let answer = firstNonRepeatedCharacter;
	let reference = refFirstNonRepeatedCharacter;
	it('is function?', () => {
		expect(typeof answer).toBe('function');
	});
	it('nonrepeatedCharacter should return `null` for empty string', () => {
		expect(answer('')).toBe(null || undefined);
	});
});

아직 테스트케이스를 전부 입력하진 않았지만, 테스트가 잘 돌아가는 걸 볼 수 있다.


전부 다 넣은 테스트 결과


 

728x90
반응형