
이번글에서 저번에 다뤘던거와 비슷하지만 조금더 응용해서 테스트 코드를 작성해보자.
좀 더 복잡한 코드에선 아래에 코드로 적용해보는것이 좋을거 같다.
1. 모의 (Mocks)
모의는 외부 의존성에 대한 가짜 객체로, 함수 호출 및 동작을 추적하고 기대 대로 모의 객체를 조작할 수 있다.
// 사용자 서비스 예시
class UserService {
async getUser(id) {
// 실제 사용자 데이터베이스에서 사용자를 가져오는 코드
}
}
// UserService 모의 객체 생성
const mockUserService = {
getUser: jest.fn(),
};
2. 스텁 (Stubs)
스텁은 함수의 동작을 가짜로 대체하여 특정 동작을 흉내내도록 하는데 사용된다.
// 네트워크 요청 모듈 예시
const request = require('request');
// 네트워크 요청 함수 스텁
request.get = jest.fn().mockImplementation((url, callback) => {
callback(null, { statusCode: 200 }, '가짜 응답 데이터');
});
3. 스파이 (Spies)
스파이는 함수 호출 및 동작을 추적하고 기록하는데 사용된다.
// 스파이 예시
const myFunction = jest.fn();
myFunction('인수1');
myFunction('인수2');
expect(myFunction).toHaveBeenCalledTimes(2);
expect(myFunction).toHaveBeenCalledWith('인수1');
반응형
'JavaScript' 카테고리의 다른 글
SEO - meta tag (og:description, description 차이점) (3) | 2024.01.05 |
---|---|
JavaScript - 원시값 (Primitive Values) 과 객체 (Feat. CloneDeep) (1) | 2023.12.07 |
Jest를 사용한 JavaScript Test - 기본 (0) | 2023.10.19 |
JavaScript(JS) - kendo-ui / grid (0) | 2023.03.24 |
JavaScript(JS) - 호이스팅과 var, let, const (0) | 2023.03.20 |