Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20130118 토비의 스프링 세미나

1,676 views

Published on

  • Login to see the comments

20130118 토비의 스프링 세미나

  1. 1. 토비의 스프링 2장 테스트 (주) 에즈넷 김준학
  2. 2. 목차• 2.1 다시 보기• 2.2 개선• 2.3 개발자를 위한 테스팅 프레임워크 JUnit• 2.4 스프링 테스트 적용• 2.5 학습 테스트로 배우는 스프링
  3. 3. 2.1 UserDaoTest 다시 보기-1장에서 main메소드로 작성한 테스트 코드의 특징1. 자바에서 가장 손쉽게 실행 가능한 main() 메소드 이용한다.2. 테스트할 대상인 UserDao의 오브젝트를 가져와 메소드 호출한다.3. 테스트에 사용할 입력 값(User 오브젝트)을 직접 코드에서 만들어 넣어준다.4. 테스트의 결과를 콘솔에 출력해 준다.5. 각 단계의 작업이 에러 없이 끝나면 콘솔에 성공 메시지로 출력해준다.
  4. 4. 2.1 UserDaoTest 다시 보기-웹을 통한 DAO 테스트 방법의 문제점-작은 단위의 테스트-자동수행 테스트 코드-지속적인 개선과 점진적인 개발을 위한 테스트
  5. 5. 2.2 UserDaoTest 개선수정 전 테스트 코드수정 후 테스트 코드Junit 테스트로 전환1. 메소드가 public으로 선언 돼야 함2. 메소드에 @Test라는 애노테이션을 붙여주는것검증 코드 전환
  6. 6. 2.2 UserDaoTest 개선Junit을 적용한 UserDaoTestJunit 테스트 실행JUnit 프레임워크도 자바 코드로 만들어진 프로그램이므로 어디선가 한번은 JUnit 프레임워크를 시작시켜줘야 한다.
  7. 7. 2.3 개발자를 위한 테스팅 프레임워크 JUnitJunit 테스트 실행 방법IDE : 사실상의 표준 자바 IDE인 이클립스는 오래전부터 JUnit테스트를 지원하는 기능을 제공하고있다. @Test가 들어있는 테스트 클래스를 선택한 뒤에, 이클립스 run메뉴의 Run As 항목 중에서 JUnit Test를 선택하면 자동으로 실행된다. JUnitCore처럼 main()메소드를 만들지 않아도 된다.
  8. 8. 2.3 개발자를 위한 테스팅 프레임워크 JUnit테스트 주도 개발(TDD, Test Driven Development)만들고자 하는 기능의 내용을 담고 있으면서 코드를 검증도 해줄 수 있도록 테스트 코드를 먼저 만들고, 테스트를 성공하게 해주는 코드를 작성하는 방식의 개발 방법 테스트보다 코드를 먼저 작성한다고 해서 테스트 우선 개발(TFD, TestFirst Development)이라고도 함 TDD 기본 원칙"실패한 테스트를 성공시키기 위한 목적이 아닌 코드는 만들지 않는다“테스트를 작성하고 이를 성공시키는 코드를 만드는 작업의 주기를 가능한짧게 가져가도록 권장(오류가 발생했을때 쉽게 대응이 가능)
  9. 9. 2.4 스프링 테스트 적용DI를 테스트에 이용하는 방법의 선택-스프링 컨테이너 없이 태스트할 수 있는 방법을 가장 우선적으로 고려: 테스트 수행 속도가 가장 빠르고 테스트 자체가 간결하다-스프링의 설정을 이용한 DI 방식의 태스트:여러 오브젝트와 복잡한 의존관계를 갖고 있는 오브젝트를 테스트해야 할 경우:테스트에서 애플리케이션 컨텍스트를 사용하는 경우에는 태스트 전용 설정파일을따로 만들어 사용하는 편이 좋다.-컨텍스트에서 DI 받은 오브젝트에 다시 테스트 코드로 수동 DI 해서 태스트하는 방법:예외적인 의존관계를 강제로 구성해서 태스트해야 할 경우:테스트 메소드나 클래스에 @DirtiesContext 애노테이션을 붙여야 함
  10. 10. 2.5 학습 테스트로 배우는 스프링학습 테스트의 장점• 다양한 조건에 따른 기능을 손쉽게 확인 해 볼수 있다.• 학습 테스트 코드를 개발 중에 참고할 수 있다.• 프레임워크나 제품을 업그레이드 할 때 호환성 검증을 도와준다.• 테스트 작성에 대한 좋은 훈련이 된다.• 새로운 기술을 공부하는 과정이 즐거워진다.버그 테스트의 장점• 테스트와 완성도를 높여준다.• 버그의 내용을 명확하게 분석하게 해준다.• 기술적인 문제를 해결하는 데 도움이 된다.

×