행위 주도 테스트 방법론이 대두되면서 함께 주목 받기 시작한 테스팅 라이브러리다.
사용자가 애플리케이션을 이용하는 관점에서 사용자의 실제 경험 위주로 테스트를 작성하고, 사용자가 어떤 이벤트를 발생시켰을 때 그에 따라 화면에 변화가 일어나는지를 테스트한다.
구현보다 기능에 초점을 맞춘 테스트 방식이라고 할 수 있다.
React Testing Library가 등장하기 전에는 Airbnb에서 만든 Enzyme이라는 테스팅 라이브러리가 많이 사용되었다.
Create React App으로 생성된 프로젝트는 기본적으로 React Testing Library가 내장되어 있다. 그렇지 않은 경우에는 npm을 통해 추가할 수 있다.
npm install --save-dev @testing-library/react
FaceBook이 만든 테스팅 프레임워크이다. 최소한의 설정으로 동작하며 테스트 케이스를 만들어서 어플리케이션 코드가 잘 돌아가는지 확인해주며, 단위 (Unit) 테스트를 위해서 이용한다.
React 내에서 테스트를 진행할 때 RTL과 함께 사용된다.
마찬가지로 Create React App으로 생성된 프로젝트는 기본적으로 Jest가 내장되어 있으며, 그렇지 않은 경우 npm을 통해 추가할 수 있다.
npm install jest --save-dev
파일명.test.js
일 때파일명.spec.js
일 때describe("Product Controller create", () => {
beforeEach(() => {
req.body = newProduct;
});
it("should have a createProduct function", () => {
expect(typeof productController.createProduct).toBe("function");
});
});
test('two plus two is four', () => {
expect(2 + 2).toBe(4); // toBe(): matcher
});
test('two plus two is not five', () => {
expect(2 + 2).not.toBe(5); // not.toBe(): matcher
});
get
, find
, query
)