본문 바로가기
source-code/Django

단위 테스트를 이용한 홈페이지 테스트

by mattew4483 2021. 2. 10.
728x90
반응형

Django 애플리케이션에서 단위 테스트를 진행해보자!

 

그런데 그 전에, 단위 테스트는 뭐고 기능 테스트는 뭘까?

기능 테스트는 사용자 관점에서 애플리케이션 외부를 테스트하는 것이고,

단위 테스트는 프로그래머 관점에서 그 내부를 테스트한다는 것이다.

 

책에서 다루는 TDD 접근법은 요 양쪽을 모두 적용한다! 

즉 작업 순서는...

1. 기능 테스트를 작성해 사용자 관점의 새로운 기능성을 정의.

2. 기능 테스트가 실패하고 나면 어떻게 코드를 작성해서 통과할지를 연구.

(이 시점에서 하나 또는 그 이상의 단위 테스트를 이용해 어떻게 코드가 동작해야하는지 정의 한다)

3. 단위 테스트가 실패하고 나면 단위 테스트를 통과할 수 있을 정도의 최소한의 코드만 작성.

(기능 테스트가 완전해질 때까지 과정 2와 3을 반복한다!)

4. 기능 테스트를 재실행, 동작 여부를 확인

 

간단히 말해 기능 테스트는 상위 레발의 개발을, 단위 테스트는 하위 레벨을 주도한다!


제일 먼저 지금껏 django를 이용하며 단 한번도 사용하지 않았던 test.py를 작성하자.

test.py

djagno에서 제공하는 TestCase! → 몇 가지 django 특화 기능들이 추가되어 있단다.

 

다음과 같이 고의적인 실패 테스트를 작성, 이를 호출해보자!

그런데 이전 functional_test.py를 직접 실행시켰던 것과 달리, 자동화된 테스트 실행자에 의해 실행된다!

 

즉 실행 방법은...

python manage.py test! 

 

쨔잔. 실행시켰더니 AssertionError가 난다! 잘 작동하는구만.

 

다시 test.py를 수정해보자.

책에서는 resolve라는 모듈을 import하는데... 막상 하면 No module named 에러가 난다!

왜? Django 버전 문제로 2.0부터 해당 모듈을 삭제했기 때문! 지금은 reverse 모듈을 사용한다.

 

아무튼 아직 만들지 않은 home이란 함수를 호출하려 하는 중! 당연히 에러가 나겠지?

역시나 home이 없다는 에러 발생! 컴퓨터는 참 똑똑하다.

 

728x90
반응형