Unit Test python,django

흑이·2022년 1월 13일
0

블로그 글 추가 및 수정 필요

용어

TestCase - 테스트 조직의 기본 단위
(ex 유저 테스트 한다 ? UserTestCase)

Fixture -

  • 로컬에 있는거로 테스트 하지 않고, 테스트용 디비 데이터로

Assertion - unittest 실패하면

View에서 써야할 로직들이 테스트 코드에 들어갈 필요 없다.
Input 과 Output이 되도록

assertEqual 같은지 확인하는 메소드

setUp() - 테스트할
tearDown() - 테스트할 fixture을 없애버린다. 다른 테스트에 영향이 가지 않도록 하기 위해

  1. Django Unit Test

유닛테스트 파이썬 모듈을 장고가 내부적으로 사용한다.

호출해줄 수 있는 Client() 메소드

이 테스트 케이스에서 사용할 데이터가 필요 - Setup() 구성
product.objects.create()가 많으면 bulk를 주로 사용한다.

client = Client()
Client() 클래스를 client 인스턴스화 해서 사용

Setup에서 데이터 무조건 넣고(테스트 케이스에서 테스트 메소드 실행 하기 전에)
tearDown은 넣은 데이터를 다 지움

유닛 테스트에서는 ID값을 넣어줘야 좋음, 까먹지 않을 수 있다..

unit test 실패라면?
내가 짠 View가 문제이거나 , 값이 문제일수도 있다.

테스트 코드를 잘 짜야 나중에 리팩토링 할 때 수월하게 할 수 있다. 테스트 코드를 통과하면 이상이 없기 때문에

면접때 ... 유닛테스트는 어떻게 진행 하시는지? 좋은 질문

Mocking
유닛테스트를 하다보면 테스트를 하기 위해 실제로 실행할 수 없는 코드들이 있다.
외부 API 사용 시

Mock(거짓된 값)을 이용한 테스트를 시행한다.
외부 api 호출할떄 그 api는 해당하는 그 서비스를 만든 회사에서 이미 유닛 테스트를 다 하고 정식으로 릴리즈를 한 버전을 쓰는것이기 때문에

우리의 유닛테스트에서 정확한 값이 온것에 대한 검증이 필요가 없다.

요청에 대한 Mock(거짓된 값)을 이용한 테스트를 시행한다.
호출했다고 치고 리스폰 값을 이용하자

request 에 대한 테스트를 하지 않고
정상적인 값이 왔다고 생각하고, 정상적인 값(Mock)을

@patch(users.views.requests)

response 값을 우리가 데이터를 직접 만들어서 json 형태로

0개의 댓글