Filtering Tests
Jest의 Watch 모드에서 특정 테스트만 실행하고 싶을 때, t
,p
를 누르면 된다.
p
를 누르면 테스트 파일명을 입력할 수 있는 프롬프트가 나타난다. 테스트 파일명에 대한 정규식을 입력하면 해당 정규식을 만족하는 테스트 파일만 실행된다.
또 다른 방법으로는 t
를 누르면 테스트명을 입력할 수 있는 프롬프트가 나타난다. t
는 테스트명에 대한 정규식을 입력할 수 있게 해 준다. 이 경우 해당 정규식을 만족하는 테스트만 실행된다.
코드를 이용한 방법 - test.only
, test.skip
test.only
를 사용하면 해당 테스트만 실행된다. test.skip
을 사용하면 해당 테스트는 실행되지 않는다.
test.only("this will be the only test that runs", () => {
expect(true).toBe(false)
})
위 코드에서는 test.only
가 사용되었기 때문에 해당 테스트만 실행된다.
test.skip("this test will be skipped", () => {
expect(true).toBe(false)
})
위 코드에서는 test.skip
이 사용되었기 때문에 해당 테스트는 실행되지 않는다.
Grouping Tests
describe
를 이용한 그룹화
테스트를 그룹화하여 관리할 수 있다. describe
함수를 사용하면 된다.
describe(name, fn)
함수는 두 개의 인자를 받는다. 첫 번째 인자는 그룹의 이름이고, 두 번째 인자는 그룹에 속하는 테스트들을 정의하는 함수이다.
describe("group", () => {
test("test1", () => {
expect(true).toBe(true)
})
test("test2", () => {
expect(true).toBe(true)
})
})
위 코드에서는 group
이라는 그룹에 test1
, test2
라는 두 개의 테스트가 속해있다.
describe 함수 또한 filtering을 할 수 있다. describe.only
를 사용하면 해당 그룹만 실행된다. describe.skip
을 사용하면 해당 그룹은 실행되지 않는다.
describe.only("group", () => {
test("test1", () => {})
test("test2", () => {})
})
describe.skip("group", () => {
test("test3", () => {})
test("test4", () => {})
})
그리고 describe 함수는 중첩해서 사용할 수 있다.
describe("group1", () => {
test("test1", () => {})
test("test2", () => {})
describe("group2", () => {
test("test3", () => {})
test("test4", () => {})
})
})
Filename Conventions
Jest는 테스트 파일을 찾을 때 특정한 파일명 규칙을 따른다. Jest는 __tests__
디렉토리에 있는 파일과 test.js
나 spec.js
로 끝나는 파일을 찾아서 테스트 파일로 인식한다.
예를 들어 아래와 같은 파일 구조를 가진 프로젝트가 있다고 가정하자.
.
├──/__tests__
│└── my-test.js
└── my-test.spec.js
위 프로젝트에서 my-test.js
와 my-test.spec.js
파일은 Jest에 의해 테스트 파일로 인식된다.
항상 테스트 중인 코드 옆에 테스트 파일을 두고 상대경로가 짧아지도록 하는 것이 좋다.
Aliases
it과 test
it
과 test
는 동일한 함수이다. 둘 중 어떤 것을 사용해도 상관없다. it
은 test
의 alias이다.
test("this is a test", () => {})
it("this is a test", () => {})
fit과 test.only
fit
과 test.only
는 동일한 함수이다. 둘 중 어떤 것을 사용해도 상관없다. fit
은 test.only
의 alias이다.
test.only("this is the only test that runs", () => {})
fit("this is the only test that runs", () => {})
xit과 test.skip
xit
과 test.skip
은 동일한 함수이다. 둘 중 어떤 것을 사용해도 상관없다. xit
은 test.skip
의 alias이다.
test.skip("this test will be skipped", () => {})
xit("this test will be skipped", () => {})
'시작 > TIL(Today I Learned)' 카테고리의 다른 글
React Testing Tutorial(3) - Assertion, Matchers (0) | 2024.08.10 |
---|---|
React Testing Tutorial (2) - Code Coverage (0) | 2024.08.02 |
웹 페이지 렌더링 방식 이해: CSR, SSR, SSG, ISG (0) | 2024.07.10 |
네트워크 관리사 2급 실기 기출문제 - 라우터 (0) | 2024.06.22 |
Formik 이쁘게 사용하기 (0) | 2024.06.17 |
댓글