- WIL. 목차
[이번주 배운점]
- AI 머신러닝, 딥러닝 강의 수강.
- 프로젝트 복습
- 테스트 코드 작성 복습
장고 DRF
<테스트 코드 작성법>
class UserRegistrationTest(APITestCase):
def test_registartion(self):
response = (중략)
self.assertEqual(response.status_code, 200)
장고에서 테스트 작성법은 이렇다.
위의 세줄이 선두와 후미로 꼭 필요한 구성요소다.
DRF에서는 from rest_framework.test import APITestCase로
APITestCase를 임포트 해와서 클래스 기반 테스트를 작성한다.
def로는 한 테스트단위를 구분한다.
같은 분류의 테스트끼리는 묶어줄수 있게 된다.
함수 본문내에서는 response를 만드는게 핵심이다.
보통 함수의 리턴 격인 self.assertEqual 후미는 response와 테스트로 기대되는 값의 비교를 한다.
같으면 통과이고 틀릴경우 틀렸음을 알린다. (테스트 결과에서)
response를 요청할때는
response = self.client. 처럼 client라는 전용 속성이 호출된다.
그뒤에 메소드를 속성으로 이어서 명시한다.
메소드에는 ()괄호를 통해 인자들을 실어보내는데, url과 데이터가 실린다.
즉, 함수 본문에 위치할수 있는 다른 요소는
url과 데이터의 선언이다.
url은 함수별로 다르다면 함수에 각각 선언하겠지만,
해당 클래스가 한 url(즉, 한 view)만 테스트 하는 묶음이라면,
클래스의 변수로 선언하는 것도 방법이 될 것같다.
데이터 같은 경우 여러 테스트에서 쓰이는 일이 많다.
이런 경우 클래스를 상속 구조로 만들어 상위 클래스에서,
데이터를 선언하는 경우가 있다. (클래스 메소드 데코레이터를 쓰면 더좋다.)
재밌는 것은 이런 상속구조로 테스트 그룹 간의 연관성을 표현해줄수 있다.
데이터를 json형태의 값을 가지면 된다.
결론, 내가 정리해본 테스트 코드 작성법이다.
다음번 프로젝트 부터는 테스트 코드도 같이 작성해야 겠다.