1. jUnit이란?

   - Java에서 독립된 단위테스트(Unit Test)을 지원해 주는 프레임워크, 즉 모든 함수와 메소드에 대한 테스트 케이스(Test case)을 작성하는 절차

 

2. jUnit 특징

  1. 단정(assert) 메서드로 테스트 케이스의 수형결과를 판별한다.
  2. 테스트를 지원하는 어노테이션을 제공한다.
  3. 각 @Test 메서드가 호출할때 마다 새로운 인스턴스를 생성하여 독립적인 테스트가 이루어진다.

3. jUnit에서 사용하는 어노테이션(Annotation)

  • @Test
    • @Test가 선언된 메소드는 테스트를 수행하는 메소드가 된다.
    • JUnit는 각각의 테스트가 서로 영향을 주지않고 독립적으로 실행됨을 원칙으로 한다.
  • @Ignore
    • 해당 메소드는 실행되지 않는다.
  • @Before
    • @Test 메소드가 실행되기 전에 반드시 실행되어진다. 즉 @Test 메소드에서 공통으로 사용하는 코드를 @Before 메소드에 선언하여 사용한다.
  • @After
    • @Test 메소드가 실행된 후 실행된다.
  • @BeforeClass
    • @Test 메소드보다 먼저 한번만 수행되어야 할 경우에 사용
  • @AfterClass
    • @Test 메소드 보다 나중에 한번만 수행되어야 할 경우에 사용

4. 테스트 결과를 확인(Assert메서드)

  • assertEquals(a,b) : 객체 A와 B가 일치함 확인
  • assertArrayEquals(a,b) : 배열 A와 B가 일치함을 확인
  • assertSame(a,b) :  객체 A와 B가 같은 객체임을 확인
  • assertTrue(a) : 조건 A가 참인지 확인
  • assertNotNull(a) : 객체 A가 null이 아님을 확인

5. Spring-Test에서 사용하는 어노테이션(Annotation)

  •    RunWith(SpringJUnit4ClassRunner.class)
    • @RunWith는 jUnit 프레임워크의 테스트 실행 방법을 확장할때 사용한다.
    • SpringJUnit4ClassRunner라는 클래스를 지정해주면 테스트를 진행하는중에 ApplicationContext를 만들고 관리하는 작업을 진행
    • 테스트 별로 객체를 생성하더라도 싱클톤(sington)의 ApplicationContext를 보장
  • ConetextConfiguration
    • 스피링 빈(Bean) 설정 파일의 위치를 지정할때 사용
    • ex) @ContextConfiguration(location="classpath:config/bean.xml"
  • Autowired
    • 스프링DI에서 사용하는 특별한 오노테이션
    • 선언한 변수에 자동으로 빈을 매핑
    • GenericXmlApplicationContext를 사용할 필요 없음

추가적으로 

  • SpringJUnit4ClassRunner.class or ContextConfiguration을 못찾는 경우
    • pom.xml에 관련 Spring-Test dependency를 등록 확인
    • 설정한 스프링 버젼과 동일 여부 확인
    • <scope>가 있을 경우 삭제 혹은 주석 처리

 

+ Recent posts