Your SlideShare is downloading. ×
0
테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체
테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체
테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체
테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체
테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체
테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체
테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체
테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체
테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체
테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체
테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체
테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체
테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체
테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체
테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체
테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체
테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체
테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체
테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체
테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

테스트 주도 개발 By googletest 1장 다중 통화를 지원하는 money 객체

829

Published on

테스트 주도 개발 By googletest - 1장, 다중 통화를 지원하는 money 객체 …

테스트 주도 개발 By googletest - 1장, 다중 통화를 지원하는 money 객체
관련글: http://surpreem.com/archives/45

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
829
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 테스트 주도 개발<br />by googletest<br />1장. 다중 통화를 지원하는 Money 객체<br />
  • 2. 프로젝트 구성<br />
  • 3. 디렉터리 구조<br />솔루션 디렉터리<br />googletest 프레임워크<br />개발 프로젝트 디렉터리<br />테스트 프로젝트 디렉터리<br />Win32 용용 프로그램<br />프로젝트 기본 구조<br />테스트 프로젝트<br />-googletest 헤더, 라이브러리 참조<br />
  • 4. googletest 참조 설정<br />C/C++ – General – Additional Include Directories: $(SolutionDir)gtestinclude<br />Linker – General – Additional Library Directories: $(SolutionDir)gtestlib<br />
  • 5. googletest 라이브러리 설정<br />개발 프로젝트 런타임 설정<br />googletest라이브러리<br />테스트 프로젝트 런타임은 개발 프로젝트 런타임에 맞춰 설정<br />
  • 6. 프로젝트 의존성 설정<br />Build Events – Post-Build Event<br />테스트 프로젝트 빌드<br /> 개발 프로젝트 빌드<br /> 테스트 프로젝트 실행<br /> 테스트 결과 출력<br />트리거<br />자동 실행<br />
  • 7. 테스트 프로젝트 main()<br />googletest헤더<br />googletest실행 설정<br />
  • 8. 출~바알~<br />
  • 9. To do:<br /><ul><li>$5 + 10CHF = 10$(환율 2:1)
  • 10. $5 * 2 = $10</li></ul>DollarTest.cpp 추가<br /><ul><li>public 멤버 변수
  • 11. 생각 못한 부작용
  • 12. 금액에 정수 사용</li></ul>테스트 먼저<br />완벽한 인터페이스를 상상하며<br />DollarTest.cpp<br />
  • 13. To do:<br /><ul><li>$5 + 10CHF = 10$(환율 2:1)
  • 14. $5 * 2 = $10
  • 15. amount를 private으로 만들기
  • 16. Dollar 부작용(side effent)?
  • 17. Money 반올림?</li></ul>컴파일 문제<br /><ul><li>Dollar 클래스 없음
  • 18. 생성자없음
  • 19. times(int) 메서드 없음
  • 20. amount 필드 없음</li></ul>Dollar 클래스 추가(Dollar.h)<br />
  • 21. To do:<br /><ul><li>$5 + 10CHF = 10$(환율 2:1)
  • 22. $5 * 2 = $10
  • 23. amount를 private으로 만들기
  • 24. Dollar 부작용(side effent)?
  • 25. Money 반올림?</li></ul>Dollar 클래스 추가<br />Dollar.h<br />컴파일 문제<br /><ul><li>Dollar 클래스 없음
  • 26. 생성자없음
  • 27. times(int) 메서드 없음
  • 28. amount 필드 없음</li></ul>Dollar.h참조 추가<br />DollarTest.cpp<br />
  • 29. To do:<br /><ul><li>$5 + 10CHF = 10$(환율 2:1)
  • 30. $5 * 2 = $10
  • 31. amount를 private으로 만들기
  • 32. Dollar 부작용(side effent)?
  • 33. Money 반올림?</li></ul>Dollar생성자 추가<br />컴파일 문제<br /><ul><li>Dollar 클래스 없음
  • 34. 생성자없음
  • 35. times(int) 메서드 없음
  • 36. amount 필드 없음</li></ul>Dollar.h<br />
  • 37. To do:<br /><ul><li>$5 + 10CHF = 10$(환율 2:1)
  • 38. $5 * 2 = $10
  • 39. amount를 private으로 만들기
  • 40. Dollar 부작용(side effent)?
  • 41. Money 반올림?</li></ul>times()스텁,amount 추가<br />Dollar.h<br />컴파일 문제<br /><ul><li>Dollar 클래스 없음
  • 42. 생성자없음
  • 43. times(int) 메서드 없음
  • 44. amount 필드 없음</li></li></ul><li>Visual Studio Output<br />테스트 실패<br />공포의 빨간 막대<br />gtest-gbar (googletest UI)<br />
  • 45. To do:<br /><ul><li>$5 + 10CHF = 10$(환율 2:1)
  • 46. $5 * 2 = $10
  • 47. amount를 private으로 만들기
  • 48. Dollar 부작용(side effent)?
  • 49. Money 반올림?</li></ul>가장 빨리 테스트를 통과하는 방법?<br />amount 값<br />환희의 초록 막대<br />테스트 성공<br />
  • 50. TDD 주기<br />작은 테스트 하나 추가한다.<br />모든 테스트를 실행해 테스트가 실패하는 것을 확인한다.<br />조금 수정한다.<br />모든 테스트를 실행해서 테스트가 성공하는 것을 확인한다.<br />중복을 제거하기 위해 리팩토링을 한다.<br />지금은 여기<br />
  • 51. To do:<br /><ul><li>$5 + 10CHF = 10$(환율 2:1)
  • 52. $5 * 2 = $10
  • 53. amount를 private으로 만들기
  • 54. Dollar 부작용(side effent)?
  • 55. Money 반올림?</li></ul>DollarTest.cpp<br />테스트 코드와 중복:5, 2<br />중복은 어디?<br />
  • 56. To do:<br /><ul><li>$5 + 10CHF = 10$(환율 2:1)
  • 57. $5 * 2 = $10
  • 58. amount를 private으로 만들기
  • 59. Dollar 부작용(side effent)?
  • 60. Money 반올림?</li></ul>times()메서드 안으로 옮기면?<br />테스트 통과<br />
  • 61. To do:<br /><ul><li>$5 + 10CHF = 10$(환율 2:1)
  • 62. $5 * 2 = $10
  • 63. amount를 private으로 만들기
  • 64. Dollar 부작용(side effent)?
  • 65. Money 반올림?</li></ul>5생성자에서 넘어 오는 값<br />5 대신 amount 사용<br />
  • 66. To do:<br /><ul><li>$5 + 10CHF = 10$(환율 2:1)
  • 67. $5 * 2 = $10
  • 68. amount를 private으로 만들기
  • 69. Dollar 부작용(side effent)?
  • 70. Money 반올림?</li></ul>multiplier == 2<br />테스트 통과<br /> 첫 번째 테스트 완료<br />마무리…<br />

×