개발자의 공부방/스프링 스프링 기초] jUnit 이란? - 728x90 반응형 jUnit의 특징 TDD의 창시자인 Kent Beck과 디자인 패턴 책의 저자인 Erich Gamma가 작성했다. 단정(assert) 메서드로 테스트 케이스의 수행 결과를 판별한다. ex) assertEquals(예상 값, 실제 값) jUnit4부터는 테스트를 지원하는 어노테이션을 제공한다.ex) @Test @Before @After 각 @Test 메서드가 호출할 때 마다 새로운 인스턴스를 생성하여 독립적인 테스트가 이루어지도록 한다. jUnit 어노테이션 @Test @Test가 선언된 메서드는 테스트를 수행하는 메소드가 된다. jUnit은 각각의 테스트가 서로 영향을 주지 않고 독립적으로 실행됨을 원칙으로 하므로 @Test 마다 객체를 생성한다. @Ignore @Ignore가 선언된 메서드는 테스트를 실행하지 않게 한다. @Before @Before가 선언된 메서드는 @Test 메소드가 실행되기 전에 반드시 실행되어 진다. @Test 메소드에서 공통으로 사용하는 코드를 @Before 메소드에 선언하여 사용하면 된다. @After @After가 선언된 메서드는 @Test 메소드가 실행된 후 실행된다. @BeforeClass @BeforeClass 어노테이션은 @Test 메소드 보다 먼저 한번만 수행되어야 할 경우에 사용하면 된다. 클래스가 로딩되는 시점에서 딱 한번만 실행 @AfterClass @AfterClass 어노테이션은 @Test 메소드 보다 나중에 한번만 수행되어야 할 경우에 사용하면 된다. 클래스가 해당되는 객체가 지시되기 전에 딱 한번만 실행 assert 메서드 assertEquals(a, b); 객체 A와 B가 일치함을 확인한다. assertArrayEquals(a, b); 배열 A와 B가 일치함을 확인한다. assertSame(a, b); 객체 A와 B가 같은 객체임을 확인한다.assertEquals 메서드는 두 객체의 값이 같은지 확인하고, assertSame메서드는 두 객체의 레퍼런스가 동일한가를 확인한다.(== 연산자) ← 와 같다고 생각하면 된다. assertTrue(a, b); 조건 A가 참인가를 확인한다. assertNotNull(a); 객체 A가 null이 아님을 확인한다. assert 메서드 참고 https://junit.org/junit5/docs/current/api/org/junit/jupiter/api/Assertions.html Assertions (JUnit 5.4.2 API) Assert that all supplied executables do not throw exceptions. If any supplied Executable throws an exception (i.e., a Throwable or any subclass thereof), all remaining executables will still be executed, and all exceptions will be aggregated and reported i junit.org Spring-Test 어노테이션 @RunWith(SpringJUni4ClassRunner.class) @RunWith는 jUnit 프레임워크의 테스트 실행방법을 확장할 때 사용하는 어노테이션이다. SpringJUnit4ClassRunner라는 클래스를 지정해주면 jUnit이 테스트를 진행하는 중에 ApplicationContext를 만들고 관리하는 작업을 진행해 준다. @RunWith 어노테이션은 각각의 테스트 별로 객체가 생성되더라도 싱글톤(SingleTon)의 ApplicationContext를 보장한다. @ContextConfiguration 스프링 빈(Bean) 설정 파일의 위치를 지정할 때 사용되는 어노테이션이다. @Autowired 스프링DI에서 사용되는 특별한 어노테이션이다. 해당 변수에 자동으로 빈(Bean)을 매핑 해준다. 스프링 빈(Bean) 설정 파일을 읽기 위해 굳이 GenericXMLApplicationContext를 사용할 필요가 없다.(new 사용해서 할 필요가 없다는 말인듯...) 반응형 공유하기 게시글 관리 준수한쭈니네 '개발자의 공부방 > 스프링' 카테고리의 다른 글 logback 사용 시 log4jdbc 로그 찍기 (0) 2019.06.07 스프링 학습 중 (0) 2019.06.04 스프링 기초] DI (Dependency Injection)란? (0) 2019.05.21 스프링 기초] 컨테이너와 IoC (Inversion of Control, 제어의 역전) 란? (1) 2019.05.21 스프링 기초] 스프링 프레임워크 Request Life Cycle (1) 2019.05.21 Contents 당신이 좋아할만한 콘텐츠 logback 사용 시 log4jdbc 로그 찍기 2019.06.07 스프링 학습 중 2019.06.04 스프링 기초] DI (Dependency Injection)란? 2019.05.21 스프링 기초] 컨테이너와 IoC (Inversion of Control, 제어의 역전) 란? 2019.05.21 댓글 0 + 이전 댓글 더보기