테스트

언젠간·2022년 8월 22일
0

토비의스프링

목록 보기
11/16

테스트의 효율성

  • 테스트하고자 하는 대상이 명확하다면, 그 대상에만 집중하는 것이 바람직하다.
  • 작은 단위의 테스트가 중요하다.
  • 단위는 작을수록 좋으며, 단위를 넘어서는 다른 코드들은 싱경쓰지 않고, 참여하지도 않고 테스트 할 수 있으면 더욱 좋다.
  • 테스트 과정에서 DB가 사용되더라도, DB가 불변의 상태에서 테스트를 위해 제어할 수 있다면 단위 테스트라고 봐도 된다(통제 가능해야 한다).

자동수행 테스트 코드

  • 웹 화면에 폼을 띄우고 값을 입력하여 버튼을 누르고, 조회하기 위한 ID 값을 넣고, 서버를 띄우고... 가 아닌 main() 메소드를 실행하여 테스트의 전 과정이 자동으로 진행되게끔 하는 것.
	public static void main(String[] args) throws ClassNotFoundException, SQLException {
	
		ApplicationContext ac = new GenericXmlApplicationContext("applicationContext.xml");
	
		UserDao dao = ac.getBean("userDao", UserDao.class);
		User user = dao.get("whiteship");
		
		System.out.println(user.getId() + " 조회 성공");
	}
  • User 오브젝트를 만들어 적절한 값을 넣고, 이미 DB연결까지 다 되어있는 UserDao 오브젝트를 스프링 컨테이너에서 가져와서 get() 하는 것까지 자동으로 진행됨.
  • 따라서 모든 클래스에 스스로 자신을 테스트하는 main() 메소드가 있어도 좋지만, 별도의 테스트용 클래스를 만들어서 테스트 하는 것이 더 좋음.

지속적인 개선과 점진적인 개발을 위한 테스트

  • 모든 것이 다 완성된 후에 테스트하지 말고, 테스트코드를 만들어두고 하나씩 테스트하며 점진적으로 개선해나가야 함.
profile
코딩왕이될사나이

0개의 댓글