2차 프로젝트에서는 내가 만든 기능에 대해 Unit Test를 적용해야 한다. View의 Unit Test가 실행되기 위해서 Json Body, Header, Query Parameter 등의 데이터가 필요하다. 이들을 TestCase에서 어떻게 활용해야 하는지 알아보자.
Json Body로 받는 Data를 orders
라는 Dictionary 형태로 만들어주고, json.dumps(orders)
와 content_type='application/json
을 통해 Json Body에 들어가는 raw data라는 것을 알려준다.
content_type='multipart/form-data
로 변경하고 json.dumps
를 제거하여 request data 타입이 form data임을 알려준다.
Dictionary 형태로 Query Parameter임을 알려준다.
Query Parameter와 Json Data를 함께 쓸 경우 그냥 Dictionary로 써버리면 다음과 같은 에러가 난다.
그냥 심플하게 Unit Test용 query parameter url을 써주는 것이 바람직할 것 같다.
Login Decorator가 포함된 View를 Unit Test할 경우 어떻게 User에게 Token을 주어 인가할 것인지 고민했다. 가상 Token을 주어 Decorator를 통과할 수 있게 해보자.
setUp
단계에서 User
를 생성할 경우 self.token
을 같이 생성하여 저장한다.
TestCase에서 header에 self.token
을 저장하고, Response에 **header
를 넣어 반환해준다. 이러면 Decorator를 통과하고 User(id=2)에 대한 정보를 얻어 제대로 Unit Test가 작동하는 것을 볼 수 있다.