..
Chap05 사용자 입력 지정하기
목표
시스템 설계. 여러 목록과 각 목록별 작업 아이템을 만들고, url을 적용한다.
요약
기능 테스트 에러 시 사용하는 방법
- error message 개선
- 수동으로 site open
- time sleep
레드 / 그린 / 리펙터와 삼각법
- 실패 할 단위테스트 (read)
- 통 과할 최소코드 작성. 편법 가능(green)
-
리팩터링 해서 이해할 수 있는 코드 작성
리팩토링 시, 편법을 허용하지 않게 확장한다.
띄어쓰기
필자는 테스트 설정을 위한 세 줄의 코드를 한 그룹으로 묶고, 그 다음은 실제 함수를 호출하는 코드 부분(가운데 한 줄), 그리고 마지막 부분을 어설션으로 구성해서 세 개 그룹으로 나누고 있다.
이것은 강제사항은 아니지만 테스트 구조를 쉽게 파악할 수 있도록 도움을 준다. 설정(Setup), 처리(Exercise), 어설션(Assert)은 단위 테 스트의 전형적인 구조다.
give, when, then 으로 사용하는거랑 비슷한듯
각 테스트는 하나의 기능만 테스트 해야한다.
- bug tracing 이 유리해진다.
- test assert 로 상태 파악을 가능할 수 있다.
ETC
csrf error
Django의 CSRF 보호는 사이트의 각 폼이 생성하는 POST 요청을 확인할 수 있는 토 큰을 자동 생성한다. 지금까지는 순수 HTML로 이루어진 템플릿을 사용했지만, 이제 부터는 Django의 템플릿 마술을 적용하도록 한다. CSRP 토큰을 추가하기 위해 템플 릿 태그를 이용한다.
ORM
객체 관계형 맵핑(Object-Relational Mapper, ORM)
이것을 이용하면 익숙한 객체 지향 코딩 방식을 이용해서 데이터베이스를 처리할 수 있다. 데이터베이스는 클래스로 표현하고, 컬럼은 속성, 레코드는 각 클래스의 인스턴스로 표현한다.
참조 사이트
https://laravel.com/docs/7.x/csrf https://docs.djangoproject.com/en/dev/ref/csrf/#testing