Framework/Django

Django 테스트코드에서 setup 함수와 setupclass의 차이는 무엇입니까?

JM Lee 2023. 9. 23. 16:38
728x90

💡 setUp() 함수

  • 각각의 테스트 메서드가 실행될 때마다 실행
  • 각 테스트메서드는 방금 생성된 fresh한 오브젝트를 입력받음
  • 각 테스트가 끝나면 롤백되기 때문에 데이터베이스에 대한 변경 사항을 정리하지 않아도 된다
  • 테스트 중 내용이 변경될 수 있는 객체를 이곳에서 생성한다
  • 단점 : 테스트당 한 번 호출됨 => 시간이 오래 걸리는 경우 테스트 속도가 크게 느려질 수 있다.

 

💡 setUpClass()

  • @classmethod 데코레이터를 달아 함께 사용, 메서드 인자로 cls를 넘겨준다
  • 모든 테스트 함수들을 아울러 데이터를 한 번만 설정한다
  • 한 곳에 테스트에 필요한 데이터들을 정의하고 관리할 수 있다는 장점이 있다
  • 단점 : 테스트 클래스가 시작되기 이전에 전체를 한 번 호출하기때문에 테스트 도중에 자동 롤백이 되지 않는다
  • 단점 : 작성한 내용을 되돌리기 위해서는 tearDownClass에서 직접 롤백해주어야 한다.

 

 

   

 

'Framework > Django' 카테고리의 다른 글

DRF Serializer는 무엇이며, 어떤 기능을 수행합니까?  (0) 2023.10.11
RESTful API  (0) 2023.09.23
장고 50문 50답 채우기(4)  (0) 2023.07.25
장고 50문 50답 채우기(3)  (0) 2023.07.24
장고 50문 50답 채우기(2)  (0) 2023.07.24