라벨이 python_tdd인 게시물 표시

django에서의 functional test와 unit test

TDD를 공부하다가 소프트웨어 테스팅에서의 용어와  라이브러리 용어가 헷갈릴 수 있어서 짤막하게 정리하였다. Unit Test 단위 테스트 프로그램의 로직을 알고있고 프로그램의 내부에서 프로그래머가 테스팅 할 때 사용한다. django에서 unittest를 수행할 때는 django.test.TestCase 모듈을 사용한다. 이 모듈은 python built-in module인 Unittest의 확장이다. python manage.py test를 입력면 app들의 test 모듈을 돌면서 test.py에 명세된 테스트를 실행한다. TDD에서 1. 프로그래머가 test하지 않아도 되는 대상들은 이미 테스팅 된 부분, django core, 서드 파티 패키지중 테스트가 끝난 모듈 이다. 2. 프로그래머가 test할 대상들은 '1번 외의 모든 것'이다. django project의 경우 뷰, 모델, 폼부터 유효성 검사기 시그널, 필터, 템플릿 태그, 커스텀 utility module 등. Functional Test 기능 테스트 프로그램의 외부에서 프로그래머가 아닌 사용자 입장에서 테스팅 할 때 사용한다. 기능 테스트  = UI 테스트 = GUI 테스트 django에서 기능 테스트(ft)를 수행할 때는 python built-in module Unittest와 selenium web driver를 조합하여 사용한다. Mock & Fixture Mock 외부 api를 이용하는 기능에 대한 단위 test가 필요할 때 두 가지 방식을 사용한다. 1, 단위 test 자체를 통합 test로 변경한다. 2. mock 라이브러리로부터 mock 객체를 생성하여 사용한다. (python 3.3부터 unittest.mock으로 통합됨) 2의 경우 mock을 생성한다는 것은 외부 API에 대한 가짜 응답을 생성하는 행위이다. 가짜 응답을 생성함으로써, django 뿐 아니라 다른 환경에서도 이용 가능한 시스템의 일부를 대체할 수 있는 객체로 테스트할 수 있다. 간편...

Python TDD 기능 테스트를 위한 macOS Selenium 웹 드라이버 세팅

웹 드라이버 세팅 코드 최신화 TDD를 복습할 겸, 개인 프로젝트에 기능 테스트를 위해 Selenium 웹 드라이버를 세팅했다. 각 라이브러리들이 업데이트 되고 macOS에서 실행하는만큼  이전 코드와는 호환이 되지 않아서 웹 드라이버 세팅 코드를 수정했다. TDD 관련 테스트 서적과 비교해서 웹 드라이버 세팅 코드가 다른 경우 참고.  작업 환경 2024-11-24 Apple M2, macOS 14.2.1 geckodriver 0.35.0  Firefox 32.0.2 (aarch64) 세팅법 firefox 설치 brew install geckodriver ( brew 없으면 brew 설치 ) 코드 service = webdriver.FirefoxService({geckodriver 설치 위치}, port=4444) # 기본 port=4444 browser = webdriver.Firefox(service=service) geckodriver설치 위치 mac의 경우 ~/Downloads/bin/dev/webdriver/ 에 위치

이 블로그의 인기 게시물

실무진 면접 경험으로 정리하는 백엔드 (1) : 에듀 테크 기업 면접

노마드코더 개발자북클럽 Clean code 완주, 독후감

Blogger 커스터마이징 : CSS 수정 (sticky-header)