setUp vs setUpTestData

김도형·2023년 6월 18일
0

python

목록 보기
2/2

테스트코드를 작성하면서 테스트를 위한 데이터 셋업을 위해 당연하게 사용하고 있던 이름은 비슷하지만 엄연히 다르게 존재하는 두 함수에 대해 궁금증이 생겨 이렇게 글을 작성하게 되었습니다.

TestCase, APITestCase 클래스 안에 있는 함수 중
setUpsetUpTestData는 둘 다 Django의 테스트 클래스에서 사용되는 메서드로, 테스트 환경을 설정하기 위해 사용됩니다. 그러나 두 메서드는 다음과 같은 차이점이 있습니다.

  1. 호출 시점:

    • setUp: setUp 메서드는 테스트 클래스 내의 각 테스트 메서드가 실행되기 전에 호출됩니다. 즉, 각 테스트 메서드마다 호출되며 테스트 케이스 인스턴스의 초기 상태를 설정하는 데 사용됩니다.
    • setUpTestData: setUpTestData 메서드는 테스트 클래스 전체에서 딱 한 번 호출됩니다. 테스트 데이터를 설정하는 초기화 단계에서 호출되며, 테스트 메서드마다 반복해서 데이터를 설정할 필요가 없을 때 유용합니다.
  2. 사용 목적:

    • setUp: setUp 메서드는 주로 각 테스트 메서드의 실행 전에 필요한 초기화 작업을 수행합니다. 예를 들어, 테스트 데이터베이스의 초기 상태를 설정하거나, 테스트 환경에서 필요한 객체를 인스턴스화하는 등의 작업을 수행할 수 있습니다.
    • setUpTestData: setUpTestData 메서드는 주로 테스트 데이터를 설정하는 데 사용됩니다. 테스트 클래스의 모든 테스트 메서드가 동일한 테스트 데이터를 사용해야 할 때 유용합니다. setUpTestData@classmethod 데코레이터와 함께 정의되어야 하며, 테스트 데이터를 생성하고 데이터베이스에 저장할 수 있습니다.

요약하자면, setUp 메서드는 각 테스트 메서드마다 호출되며 초기화 작업을 수행하는 반면, setUpTestData 메서드는 테스트 클래스 전체에서 딱 한 번 호출되며 테스트 데이터를 설정하는 데 사용됩니다.

profile
같이 일하고 싶은 개발자 되기

0개의 댓글