여기까지가 RTL의 기능입니다. 즉, 테스트 러너는 아닙니다.
테스트를 찾고 실행하고 테스트의 잣대를 단언할 기능이 필요합니다.
Jest는 이러한 테스트 러너입니다. 다만 유일한 테스트 러너는 아니며 이과같은 테스트 러너가 Mocha
, Jasmine
도 있지만 react에서는 jest를 권장하며 cra
에 함께 포함되어있습니다.
npm test
를 통해 테스트 러너를 실행시키면 watch 모드로 들어갑니다.
이 watch 모드란 마지막 커밋 이후 파일의 모든 변경사항을 확인하여 마지막 커밋이후 변경된 파일과 관련된 테스트만 실행합니다.
즉, 커밋 이후 바로 npm test를 실행하면 아무런 파일 변경사항이 없으므로 test를 실행하지 않습니다.
test('renders learn react link', () => {
render(<App />);
const linkElement = screen.getByText("리액트 배우기");
expect(linkElement).toBeInTheDocument();
});
위 코드에서 test 함수는 jest에서 제공합니다.
test('renders learn react link', () => {
});
test('renders learn react link', () => {
throw new Error("에러 발생!")
});
하지만 이렇게 테스트를 할때에는 고의적으로 에러를 발생시키기 보다는 assertion을 통해서 예상과에서 다른 결과가 발생한다면 에러를 발생시키는 과정으로 테스트가 이루어집니다.