
rejects는 Jest에서 비동기 함수가 Promise를 반환하고 해당 Promise가 거부되는지를 테스트하기 위해 사용되는 함수입니다. 일반적으로 Promise가 거부되는 경우를 테스트하기 위해 사용됩니다.
예를 들어, 비동기 함수가 예외를 throw하거나 Promise가 거부되는 상황을 테스트하려고 할 때 rejects를 사용할 수 있습니다.
javascript
Copy code
test('비동기 함수가 거부되는지 테스트', async () => {
await expect(asyncFunction()).rejects.toThrow(Error); // asyncFunction이 Promise를 거부하는지를 테스트
});
위의 예제에서 asyncFunction()이 Promise를 거부하면 테스트가 통과합니다. 만약 asyncFunction()이 성공적으로 Promise를 이행하는 경우에는 테스트가 실패합니다.
rejects를 사용하면 Promise가 거부되는지 여부와 관련된 예외를 확인할 수 있습니다. Jest에서는 이러한 기능을 사용하여 비동기 코드의 예외 상황을 쉽게 테스트할 수 있습니다.
jest는 보니까, 내가 원하는 시나리오를 구축한 다음에 실제 함수를 jest 테스트 환경으로 가져와서 내가 원하는 시나리오대로 테스트환경 속 코드들과 상호작용 하는지 보는 거인 듯.
강의 보니까 테스트 구축 동안 기존 함수를 전혀 안건드리네.
내가 어제 힘들었던건 아마 이게 함수도 직접 건드려야 되는 건 줄 알았나봄
jest 용어
.reject. : promise가 제대로 거부되는지 확인
.not. :
test('두 값이 다른지 테스트', () => {
expect(1).not.toBe(2); // 1이 2와 다르지 않은지를 테스트
});
만약 반환 값이 없는 함수를 테스트 한다면,
1.
function.mockResolvedValueOnce(undefined)
2.
expect(function).not.tobeDefined()
ex)
userRepository.createResume.mockResolvedValueOnce(undefined)
해당 테스트에서,
userRepository의 createResume가 처음 호출될 때 한번 만 반환값을 (undefined)로 한다. - 그 후에는 이 코드는 다시 호출해도 반응 안함 -