[2013.07.16] PythonKorea강남스터디 발표 - flask testing

15
Flask Tes)ng 20130716 성대현(DaeHyun Sung)

description

2013년 7월 16일자 PythonKorea강남스터디 2주차 발표 Flask Testing 자료입니다. 발표주제는 Flask의 테스트에 대한 소개입니다. TDD의 간단한 소개와 unittest모듈 소개 및 Flask에서 unittest사용하는 방법과 unittest의 기능을 확장한 Flask-Testing모듈에 대해 소개를 합니다.

Transcript of [2013.07.16] PythonKorea강남스터디 발표 - flask testing

Page 1: [2013.07.16] PythonKorea강남스터디 발표 - flask testing

Flask  Tes)ng  

2013-­‐07-­‐16  성대현(DaeHyun  Sung)  

Page 2: [2013.07.16] PythonKorea강남스터디 발표 - flask testing

시작하기 전에  

•  Something  that  is  untested  is  broken  •  테스트하지 않은 것은 고장난다.  

Page 3: [2013.07.16] PythonKorea강남스터디 발표 - flask testing

TDD  

•  테스트주도 개발 Test-­‐Driven  Development  •  프로그램을 작성하기 전에 테스트 먼저 하라  Test  the  program  before  you  write  it  

•  잘동작하는 깔끔한 코드  Clean  code  that  works  

•  질문è응답è정제è반복  AskèRespondèRefineèRepeat  

Page 4: [2013.07.16] PythonKorea강남스터디 발표 - flask testing

xUnit  

•  단위 테스트를 하는데 도움을 주는 프레임워크  

xUnit 이름   관련언어   홈페이지  JUnit   Java   hOp://www.junit.org/  

CUnit   C   hOp://cunit.sourceforge.net/    

CppUnit   C++   hOp:/sourceforge.net/projects/cppunit  

csUnit   C#   hOp://csunit.org/    

Test::Unit   Ruby   hOp://ruby-­‐doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html    

uniOest   Python   hOp://docs.python.org/2/library/uniOest.html    

Page 5: [2013.07.16] PythonKorea강남스터디 발표 - flask testing

Unit  TestCase  수행 순서  

setUp()   testXXX()   teardown()  

테스트 시작   테스트 종료  

Page 6: [2013.07.16] PythonKorea강남스터디 발표 - flask testing

Implemented  Code(구현된 코드)  

Page 7: [2013.07.16] PythonKorea강남스터디 발표 - flask testing

Unit  Test(단위 테스트) 코드  

Page 8: [2013.07.16] PythonKorea강남스터디 발표 - flask testing

Unit  Test(단위 테스트) 실행결과  

•  OK  – 테스트 성공!  

•  FAILED  – Failures  

•  예상한 값이 나오지 않아 테스트가 실패.    – Errors  

•  테스트를 하다 에러발생  

Page 9: [2013.07.16] PythonKorea강남스터디 발표 - flask testing

Unit  Test(단위 테스트)  실행결과  

OK  

Failures  

Page 10: [2013.07.16] PythonKorea강남스터디 발표 - flask testing

Unit  Test(단위 테스트) 실행결과  

Errors  

Page 11: [2013.07.16] PythonKorea강남스터디 발표 - flask testing

Flask  applica)on  test  

•  Python에서 기본 제공하는 uniOest  module  사용  

•  Source  code  hOps://github.com/mitsuhiko/flask/blob/master/examples/flaskr/flaskr_tests.py    

•  Example  code  실행  

Page 12: [2013.07.16] PythonKorea강남스터디 발표 - flask testing

•  테스트코드처럼 작동되는지 확인  

Run  Flask  applica)on    

Page 13: [2013.07.16] PythonKorea강남스터디 발표 - flask testing

다른 테스팅 기법  

•  Flask  API에서 제공되는 Applica)on  Object  API와 Test  Client  API 확인  –  hOp://flask.pocoo.org/docs/api/#applica)on-­‐object  –  예제)  test_request_context()함수를 사용  

Page 14: [2013.07.16] PythonKorea강남스터디 발표 - flask testing

Flask-­‐Tes)ng  

•  hOp://pythonhosted.org/Flask-­‐Tes)ng/    •  Python의 uniOest 모듈에서 부족한 부분을 확장하여 제공함.  

•  설치방법(2가지)  1.  $  pip  install  Flask-­‐Tes)ng  2.  $  git  clone  hOps://github.com/jarus/flask-­‐

tes)ng.git  $  cd  flask-­‐tes)ng  $  python  setup.py  develop  

Page 15: [2013.07.16] PythonKorea강남스터디 발표 - flask testing

관련 링크  •  테스트 가능한 소프트웨어 설계와 TDD작성 패턴(Testable  design  and  TDD)  hOp://www.slideshare.net/doorOs/tdd-­‐testable-­‐design-­‐and-­‐tdd    

•  Flask  어플리케이션 테스트하기 hOp://kswa.codingstar.net:14705/html/tes)ng.html    

•  Python  Unit  tes)ng  frameworkhOp://docs.python.org/2/library/uniOest.html    

•  Flask-­‐Tes)ng  hOp://pythonhosted.org/Flask-­‐Tes)ng/