본문 바로가기

분류 전체보기

2.6 정리 테스트는 자동화돼야 하고, 빠르게 실행할 수 있어야 한다. JUnit 프레임워크를 사용하면 테스트 작성이 편리하다. 테스트 결과는 일관성이 있어야 한다. 환경이나 테스트 실행 순서에 따라 결과가 달라지면 안 된다. 테스트는 포괄적으로 작성해야 한다. 검증이 되지 않은 테스트는 없는 것보다 못하다. 코드 작성과 테스트 수행의 간격이 짧을수록 효과적이다. 테스트하기 쉬운 코드가 좋은 코드다 테스트 주도 개발 방법도 유용하다. 테스트 코드도 리팩토링이 필요하다. @Before, @After를 사용해서 테스트 메소드들의 공통 준비 작업과 정리작업을 처리할 수 있다. 스프링 테스트 컨텍스트 프레임워크를 이용하면 테스트 성능을 향상시킬 수 있다. 동일한 설정파일을 사용하는 테스트는 하나의 애플리케이션 컨텍스트를 공..
2.5 학습 테스트로 배우는 스프링 2.5 학습 테스트로 배우는 스프링 학습 테스트 자신이 만들지 않은 프레임워크나 다른 개발팀에서 만들어서 제공한 라이브러리 등에 대해서 작성한 테스트 학습 테스트의 목적 사용할 API나 프레임워크의 기능을 테스트로 보면서 사용 방법을 익히기 위함 자신이 테스트를 만들려고 하는 기술이나 기능에 대해 얼마나 제대로 알고 있는 지를 검증 빠르고 정확하게 사용법을 익히기 위함 테스트 대상보다 테스트 코드 자체에 관심을 가져야 함 2.5.1 학습 테스트의 장점 다양한 조건에 따른 기능을 손쉽게 확인 가능 자동화된 테스트 코드로 만들어지기 때문에 다양한 조건에 따라 기능이 어떻게 동작하는지 빠르게 확인이 가능 학습 테스트 코드를 개발 중 참고 가능 예제를 만드는 방법의 경우 최종 수정 예제만 남게 된다. 학습 테스..
2.4 스프링 테스트 적용 애플리케이션 컨텍스트 생성 방식 @Before 메소드가 테스드 메소드 개수만큼 반복 반복될 때마다 애플리케이션 컨텍스트가 만들어짐 애플리케이션 컨텍스트 생성 시 모든 싱글톤 빈 오브젝트를 초기화하므로 제법 많은 시간을 필요로 함 테스트는 가능한 독립적으로 매번 새로운 오브젝트를 사용하는 것이 원칙 애플리케이션 컨텍스트처럼 시간과 자원이 많이 소모되는 경우 테스트 전체가 공유하는 오브젝트를 만들기도 함 다만, 이 때도 테스트는 일관성이 있어야하며, 테스트 순서에 영향을 받지 말아야한다. 애플리케이션 컨텍스트의 경우 초기화되고 나면 내부 상태가 변경되는 일이 거의 없으므로 무관함 문제는 JUnit이 매번 테스트 클래스의 오브젝트를 새로 생성함. 여러 테스트가 함께 참조할 애플리케이션 컨텍스트를 오브젝트 레벨..
2.3 개발자를 위한 테스팅 프레임워크 JUnit 목차 2.3.1 JUnitTest 실행 방법 IDE 빌드툴 2.3.2 테스트 결과의 일관성 deleteAll()의 getCount() 추가 deleteAll()과 getCount()의 테스트 동일한 결과를 보장하는 테스트 2.3.3 포괄적인 테스트 getCount() 테스트 addAndGet() 테스트 보완 get() 예외조건에 대한 테스트 테스트를 성공시키기 위한 코드의 수정 포괄적인 테스트 2.3.4 테스트가 이끄는 개발 기능설계를 위한 테스트 테스트 주도 개발 2.3.5 테스트 코드 개선 @Before 픽스처 2.3.1 JUnit 테스트 실행 방법 JUnitCore를 이용해 테스트를 실행할 수도 있지만, 테스트의 수가 많아지고 복잡해지면 관리하기가 힘들어짐 IDE 이클립스, STS는 JUnit 테스..
[SCIT Study] 2019년 1월 12일 참여인원 김수현 박치현 여명환 스터디 장소 SCIT 스터디룸 스터디 내용 1. 진행상황 1.1 진행상황 체크 박치현 스프링 2.2장 완료 N2 단어 90개 N2 문법 6개 쉐도잉 2개 여명환 스프링 2.3장 완료 일본인과의 전화통화(30분~1시간/일) 안드로이드 프로젝트 어른들을 위한 수학 3강 완료 김수현 스프링 1.6장 완료 할말이없다. 잘 놀았다. 1.2 진행상황 평가 전체적으로 매우 부족 1순위 : 스프링 + 기사 진도는 멈추지 않고 4장까지 쭉 갑니다 열심히 합시다 1.3 차주 진행목표 토비의 스프링 4장까지 기사 N2 단어 시험 한자 25개 요미가나 25개 2. 스프링 1장 정리 스프링의 가장 큰 강력함은 유지보수의 편리성에 있다. 계속 염두해두면서 책 보기 오늘 정리한 내용, 혼자서 백지에 ..
2.2 UserDaoTest 개선 목차 2.2.1 테스트 검증의 자동화 2.2.2 테스트의 효율적인 수행과 결과 관리 JUnit 테스트로 전환 테스트 메소드 전환 검증 코드 전환 JUnit 테스트 실행 2.2.1 테스트 검증의 자동화 add()에 전달한 User 오브젝트와 get()을 통해 가져와 User 오브젝트의 정보가 서로 일치하는가 테스트 에러 : 테스트 진행 중 에러(Exception 등)가 발생 테스트 실패 : 에러는 발생하지 않았지만, 결과값이 다를 때 '조회 성공'은 에러가 발생하지 않았음을 의미할 뿐 테스트의 실패 여부는 알 수 없음 수정한 UserDaoTest() public static void main(String[] args) throws ClassNotFoundException, SQLException{ // ...
2.1 UserDaoTest 다시보기 목차 2.1.1 테스트의 유용성 2.1.2 UserDaoTest의 특징 웹을 통한 DAO테스트 방법의 문제점 작은 단위의 테스트 자동수행 테스트 코드 지속적인 개선과 점진적인 개발을 위한 테스트 2.1.3 UserDaoTest의 문제점 2.1.1 테스트의 유용성 UserDaoTest() + main() 메소드를 이용한 add(), get() 메소드의 동작 확인 + 테스트가 있었으므로 다양한 방법으로 UserDao의 코드의 설계와 코드를 개선 + 테스트 : 내가 예상하고 의도했던 대로 코드가 정확히 동작하는지를 확인 -> 만든 코드에 대한 확신 2.1.2 UserDaoTest의 특징 UserDaoTest public class UserDaoTest { public static void main(String..
2장. 테스트 개요 스프링이 개발자에게 제공하는 가장 중요한 가치 객체지향 IoC와 DI : 오브젝트의 설계와 생성, 관계, 사용에 관한 기술 IoC/DI를 이용하여 객체지향 프로그래밍 언어의 근본과 가치를 개발자가 손쉽게 적용하고 사용할 수 있도록 도와줌 테스트 애플리케이션은 계속 변하고 복잡해져간다. 만들어진 코드을 확신할 수 있게 해 줌 변화에 유연하게 대처할 수 있는 자신감을 줌 목차 2.1 UserDaoTest 다시 보기 2.1.1 테스트의 유용성 2.1.2 UserDaoTest의 특징 웹을 통한 DAO테스트 방법의 문제점 작은 단위의 테스트 자동수행 테스트 코드 지속적인 개선과 점진적인 개발을 위한 테스트 2.1.3 UserDaoTest의 문제점 2.2 UserDaoTest 개선 2.2.1 테스트 검증의 자..