TDD의 주요 프로세스 Functional test Unit tests Unit test-code cycle Refactoring Double-Loop TDD Double_Loop TDD Outside-In development with Double Loop TDD In my last post, I started talking about London School TDD, and the two features of it that I think distinguish it from Classic TDD. The first was Outside-In development with Double Loop TDD, which… coding-is-like-cooking.info
Refactoring이란 기능(결과물)은 바꾸지 않고 코드 자체를 개선하는 작업 첫 번째 규칙은 테스트 없이 리팩토링할 수 없다는 것 리펙토링 시에는 앱 코드와 테스트 코드를 한 번에 수정하는 것이 아니라 하나씩 수정해야 한다. 리팩토링 시에는 몇 가지 처리를 수정하기 위해 단계를 건너뛰는 경향이 있다. 하지만 반 이상의 파일을 수정하기 시작하면서 자신이 무엇을 수정했는지 모르게 되고 결국 아무것도 동작하지 않게 된다. Refactoring Cat 처럼 되고 싶지 않다면 작은 단계로 나누어 착실히 작업하도록 하자 참고로 리팩토링과 기능 변경은 전혀 다른 개념이다. 리팩토링 후에는 커밋을 해주는 것이 좋다 Refactoring Refactoring Home Page Introduction to the te..
Funtional Test: 사용자 관점에서 애플리케이션 외부를 테스트 Unit Test: 프로그래머 관점에서 그 내부를 테스트 작업 순서 기능 테스트를 작성해서 사용자 관점의 새로운 기능성을 정의하는 것부터 시작 기능 테스트가 실패하고 나면 어떻게 코드를 작성해야 테스트를 통과할지(또는 적어도 현재 문제를 해결할 수 있는 방법)를 생각. 이 시점에서 하나 또는 그 이상의 단위 테스트를 이용해서 어떻게 코드가 동작해야 하는지 정의(기본적으로 모든 코드가 (적어도) 하나 이상의 단위 테스트에 의해 테스트 돼야 한다. 단위 테스트가 실패하고 나면 단위 테스트를 통과할 수 있을 정도의 최소한의 코드만 작성. 기능 테스트가 완전해질 때가지 과정 2와 3을 반복해야 할 수도 있다. 기능 테스트를 재실행해서 통과하..
기능 테스트(Functional test, FT) 실제 웹 브라우저를 실행해서 애플리케이션이 어떻게 동작(functions)하는지 사용자 관점에서 확인 ...더보기 용어: 기능 테스트 == 승인 테스트 == 종단간 테스트 Functional Test, Acceptance Test, End-to-End Test로 부르기도 함. 중요한 것은 이 테스트들이 전체 애플리케이션이 어떻게 동작하는지를 외부 사용자 관점에서 확인하는 테스트라는 것. BlackBox 테스트라는 용어를 사용하는 경우도, 시스템 내부에 대해선 전혀 알지 못하기 때문 FT는 사람이 이해할 수 잇ㄴ느 스토리를 가지고 있어야 한다. 이것을 분명하게 정의하기 위해 테스트 코드에 주석을 기록 from selenium import webdriver ..
from selenium import webdriver browser = webdriver.Firefox() browser.get('http://localhost:8000') assert 'Django' in brower.title pip install selenium pip install django django-admin startproject config . python manage.py runserver python functional_test.py .gitignore에 예외할 파일 또는 디렉토리 추가 git init . git add . git status git rm -r --cached __pycache__ git add .gitignore git commit -m "first commit"..