[drf | recipe test] Build a Backend REST API - 41

Hyeseong·2021년 3월 8일
0
post-custom-banner

Add tests for creating recipes

post 요청에 대한 API를 만들어 볼게요.

test_create_basic_recipe

tag or ingredient 연결 없이 기본 쌩짜 recipe 객체를 만들어 볼거에요.

먼저, payload 딕셔너리 변수를 정의 할게요.

그 다음 self.client.post 메서드를 통해서 target endpoint에 payload를 던져줘요. 그리고 정상적으로 서버에서 recipe 인스턴스를 생성하고 db에 저장하고 응답으로 201 코드를 반환 받는지 확인합니다.

그 다음 payload의 key-value값과 response로 받은 'id'키의 값이 일치하는지 for문으로 확인할거에요.

  • getattr() 메서드는 인스턴스의 속성값이 있는지 확인하고 있다면 반환합니다.

이렇게 쓰입니다. 넹!

test_create_recipe_with_tags

일단 tag1, tag2 객체 두개를 sample_tag 헬퍼 함수를 통해서 만들게요.
그리고 payload를 이용해서 tags 키에 value의 값으로 리스트 컨테이너를 만든다음 앞서 만든 tag1, tag2 객체를 담을게요.

이전 테스트와 동일하게 post요청을 클라이언트를 통해서 보내게되요.
res.data['id']로 받은 값을 Recipe 클래스의 get메소드를 통해서 객체 조회를 할게요. 그리고 recipe가 정참조 하고 있는 tags 필드에 가서 그리고 all()메서드를 이용해서 쿼리셋 전부를 받아오게되요.

그럼 앞에 우리가 만든 tag1, tag2가 줄줄이 엮여서 오겠조?!
assertEqual(), assertIn() 메소드를 이용해서 테스트 마무리를 지을게요.

test_create_recipe_with_ingredients

사실상 tags -> ingredients 로 단어가 바뀐것 제외하고는 모든게 동일합니다.

profile
어제보다 오늘 그리고 오늘 보다 내일...
post-custom-banner

0개의 댓글