테스트코드를 작성하면서 테스트를 위한 데이터 셋업을 위해 당연하게 사용하고 있던 이름은 비슷하지만 엄연히 다르게 존재하는 두 함수에 대해 궁금증이 생겨 이렇게 글을 작성하게 되었습니다.
TestCase, APITestCase 클래스 안에 있는 함수 중
setUp
과 setUpTestData
는 둘 다 Django의 테스트 클래스에서 사용되는 메서드로, 테스트 환경을 설정하기 위해 사용됩니다. 그러나 두 메서드는 다음과 같은 차이점이 있습니다.
호출 시점:
setUp
: setUp
메서드는 테스트 클래스 내의 각 테스트 메서드가 실행되기 전에 호출됩니다. 즉, 각 테스트 메서드마다 호출되며 테스트 케이스 인스턴스의 초기 상태를 설정하는 데 사용됩니다.setUpTestData
: setUpTestData
메서드는 테스트 클래스 전체에서 딱 한 번 호출됩니다. 테스트 데이터를 설정하는 초기화 단계에서 호출되며, 테스트 메서드마다 반복해서 데이터를 설정할 필요가 없을 때 유용합니다.사용 목적:
setUp
: setUp
메서드는 주로 각 테스트 메서드의 실행 전에 필요한 초기화 작업을 수행합니다. 예를 들어, 테스트 데이터베이스의 초기 상태를 설정하거나, 테스트 환경에서 필요한 객체를 인스턴스화하는 등의 작업을 수행할 수 있습니다.setUpTestData
: setUpTestData
메서드는 주로 테스트 데이터를 설정하는 데 사용됩니다. 테스트 클래스의 모든 테스트 메서드가 동일한 테스트 데이터를 사용해야 할 때 유용합니다. setUpTestData
는 @classmethod
데코레이터와 함께 정의되어야 하며, 테스트 데이터를 생성하고 데이터베이스에 저장할 수 있습니다.요약하자면, setUp
메서드는 각 테스트 메서드마다 호출되며 초기화 작업을 수행하는 반면, setUpTestData
메서드는 테스트 클래스 전체에서 딱 한 번 호출되며 테스트 데이터를 설정하는 데 사용됩니다.