Develop/Spring framework
[Spring] Unit Test
자라선
2020. 7. 31. 11:41
1. Unit Test
프로그래밍에 있어서 테스트는 절대적인 것이다.
자신이 만든것이 잘 작동하는지 원하는 결과가 나오는지에 대한 확신은 테스트에서 알수있다.
하지만 웹 단위에서 테스트를 진행할시 JSP 로 뷰단에서 값을 입력하여 Controller에 넘기고 Service에서 다시 Dao로 .. 등등 비즈니스 로직과 뷰 를 동시에 테스트해야 하기 때문에 규모가 커지며 원하는 부분 예를 들어 Dao를 테스트할려는데 다른 부분에서 에러가 터져 Dao 하나 테스트할려고 다른 부분도 디버깅해야한다.
이를 방지하기 위해 특정 부분만 테스트 하는것을 Unit Test (단위 테스트)라 불린다.
이전까지 작성 했던 UserDao를 main 메소드에서 실행하는것도 Unit Test라 볼수 있다.
그런데 DB까지 사용하니 단위라고 불리기 힘들수도 있지만 개발자용 DB 즉 값을 마음대로 변경할수 있는 DB같은경우 단위 테스트에 포함된다고 할수 있다.
public class main {
public static void main(String[] args) throws SQLException {
ApplicationContext context = new GenericXmlApplicationContext("applicationContext.xml");
UserDao userdao = context.getBean("userDao", UserDao.class);
User user = new User();
user.setId("" + new Random().nextInt(10000));
user.setName("name");
user.setPassword("123");
userdao.add(user);
User user2 = new User();
user2 = userdao.get(user.getId());
if(!user.getName().equals(user2.getName())) {
System.out.println("테스트 실패 (name)");
}else if(!user.getPassword().equals(user2.getPassword())) {
System.out.println("테스트 실패 (password)");
}else {
System.out.println("조회 테스트 성공");
}
}
}
위의 코드 처럼 main메소드에서 userDao를 호출하여 테스트를 하는것도 Unit Test라 볼수 있다.