TestCode 만들기

서재환·2022년 11월 23일
0

Django

목록 보기
40/40

테스트 코드 만들기

테스트 코드를 작성함으로써 내가 만든 api의 첫번째 사용자가 되어보자

테스트 종류

테스트에는 대표적으로 아래와 같은 테스트가 있다.

  • unit test
    class, 함수 단위의 테스트
  • regression test
    히스토리 검사 테스트
  • integeration test
    검포넌트 간 관계가 있는 경우 해당 관계에서의 테스트
  • 기타
    blackbox, white box, stress ...

가장 간단한 unit test

유닛 테스트가 작성하기 쉽다. 함수 단위에서 테스트하기 때문이다.유닛테스트를 많이 작성 할수록 필요한 통합테스트 개체수가 줄어든다. 유닛 테스트를 다 작성했다고 하더라도 통합테스트가 필요한데 그 이유는 예전에 작동했던 코드가 동작하지 않는 오류를 잡을 수 있기 때문이다.

테스트 코드는 성공, 실패, 에러는 내뱉을 수 있고 예측된 결과 뿐만 아니라 예기치 못한 상황에 대해서도 테스트 해야한다.

Test class 기본 구조

무엇을 테스트 해야 하나?

장고의 모듈, 내장 python의 기능들은 제공되는 기능이기 때문에 테스트 대상으로 볼 순 없다. 개발 과정에서 잘 작동하는지는 확인하는 작업은 필요하지만 테스트 코드의 대상은 아니다. 그 외 개발자가 작성한 코드들이 테스트코드의 대상이다.

만드는 방법

앱 내부에 테스트 폴더를 만든 뒤 __init__.py 파일을 만들어 해당 폴더가 패키지임을 알려준다. 장고에서 앱을 만들면 앱 안에 앱이름.tests.py 파일이 자동 생성 되는데 폴더 안에서 테스트 파일을 종류별로 관리 할 것이기 때문에 해당 파일은 지워주도록 하자.

하나의 테스트에 대해서 하나의 클래스를 통해 관리하도록 한다.

setUpTestData

  • 해당 메서드의 경우 classmethod로 선언하여 사용한다.
  • 클래스 내에서 초기에 딱 한번 실행된다.
  • 여러 테스트 클래스에서 특정 객체가 사용 될 경우 해당 객체를 해당 메서드에서 만들어 줘서 설정한다.

setUp

  • 해당 메서드의 경우 단순히 def로 선언해서 사용한다.
  • 테스트 메소드마다 실행된다.

추천 테스트

추천하는 테스트의 경우 모델 테스트이다. 모델 테스트라 함은 모델에 정의한 형태로 값이 들어오는지 확인하는 테스트이다.

0개의 댓글