반응형
- TDD의 핵심 expect에 대해서 얼마나 다양하게 많은지, 각각의 함수에 대해 어떤 상황이 적합한지 정리해보자
- expect().toBe() : 인스턴스 비교를 할 때보단 값을 비교할 때 사용하는 것이 더 적합하다. 인스턴스를 인스턴스 내부의 property값들이 전부 같은지 비교하기 위해 toBe를 쓰게 된다면 서로 다른 객체라고 결과를 내보냄
- expect().toEqual() : 인스턴스 값들을 체크하고자 한다면 toEqual이 적합하다
test('dummy test', () => {
const data = {id : 3};
data['content'] = 'test case';
expect(data).toEqual({id: 3, content: 'test case'});
})
- expect().toBeNull() : toBe(null)과 결과는 동일하지만 아닐 때 에러메시지가 좀 더 구체적이고 직관적이다.
- expect().toBeTruthy() : toBeNull과 동일, 이건 boolean 체크용
- expect().toHaveLength(number) : 해당 객체에 .length 속성이 있을 때 특정 값이랑 일치하는지 확인
- expect().toHaveProperty(keyPath, value?) : 해당 객체 안에 keyPath값의 property가 존재하는지 테스트할 때 확인. 여기서 존재하는 것 뿐만이 아니라 그 해당 property의 값까지 비교하고 싶으면 value안에 값을 넣어주면 됨.
- expect.objectContaining(object): toHavaProperty랑 비슷하긴 한데 object를 넣어주고 해당 object들의 property가 test하고자 하는 객체 안에 포함되는지를 확인하는 거
- expect().toBeCalled() : 모킹된 함수가 몇번이 호출되었는지 카운트해서 확인
반응형
'Backend 언어 > JS&TS' 카테고리의 다른 글
2021 ECMAScript (ES12) 신규 변경점 (0) | 2021.09.09 |
---|---|
[aws-sdk] aws sdk 3이 나왔다. (0) | 2021.05.14 |
[nestjs] nestjs를 시작하며 (0) | 2021.05.14 |
Jest 'JavaScript heap out of memory'에서 시작된 리팩토링 - (1) (0) | 2021.04.30 |
[jest] mocking 사용하기 (1) | 2021.04.24 |