TDD (Test-Driven Development)

우뱅뱅·2022년 8월 25일
0

TDD란 무엇인가?

  • 간단하게 더 안정적인 어플리케이션을 위해서는 여러 방법으로 테스트를 해줘야 더 안정적인 어플리케이션이 될 수 있고 TDD는 그 중에 하나이다.

개발하기도 바빠죽겠는데 TDD를 왜 해야하나?

  • 디버깅 시간을 단축! 만약 데이터가 잘못 나왔다면 그것이 UI의 문제인지 DB의 문제인지등 전부 테스트를 해봐서 찾아야 하는데 테스팅 환경이 구축되었따면 자동화 된 유닛 테스팅으로 특정 버그를 쉽게 찾아 낼 수 있습니다.
  • 더욱 안정적인 어플리케이션! 많은 테스트 코드와 함께 작성된 코드의 어플리케이션이 되기 때문에 훨씬 안정적인 어플리케이션이 됩니다.
  • 이밖에도 재설계 시간의 단축, 추가로 무언가를 더 구현해야 할 때 더 용이하게 할 수 있는 등의 이점들이 있습니다.

ReactTesting Library의 종류

  • 리액트 초기에는 Enzyme이라는 테스팅 라이브러리를 사용하여 [구현 주도 테스트]를 하였으나 현재는 React Testing Library를 이용하여 [행위 주도 테스트]를 합니다.

테스트 사용 법

Descibe() : test()들이 모여있는 그룹
test(it): 한가지 테스트의 작은 단위
expect: 값을 테스트 할 때마다 사용하고 expect 단독으로는 거의 사용되지 않으면 matcher와 같이 사용됩니다.

matcher = {
tobe(4): expect가 4가 맞는지?
not.tobe(4): expect가 4가 맞지 않는지?
tobeTruthy: expect가 맞는지?
}

쿼리 함수란 무엇인가??

getBy... : 쿼리에 대해 일치하는 노드를 반환하고 일치하는 요소가 없거나 둘 이상의 일치가 발견되면 설명 오류를 발생시킵니다. (둘 이상의 요소가 예상되는 경우 대신 getAllBy 사용).

queryBy... : 쿼리에 대해 일치하는 노드를 반환하고 일치하는 요소가 없으면 null을 반환합니다. 이것은 존재하지 않는 요소를 어설션하는 데 유용합니다. 둘 이상의 일치 항목이 발견되면 오류가 발생합니다.
(확인된 경우 대신 queryAllBy 사용)

findBy... : 주어진 쿼리와 일치하는 요소가 발견되면 해결되는 promise를 반환합니다.

getBy + waitFor = findBy

--- 작성 중 ---

profile
개발왕이 될 남자

0개의 댓글