Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- batch
- spring bean
- spring pid
- Spring Batch
- JPA mapping
- spring-webmvc #코드읽기
- IntelliJ
- ApplicationPidFileWriter
- JUnit
- spring jpa
- Spring Data JPA
- Spring Data REST
- spring boot
- tomcat
- ORM
- SuperTypeToken
- 톰캣
- static inner class
- spring batch 코드
- spring camp
- Spring
- 세미나
- docker
- spring-mvc
- spring boot tomcat
- spring-webmvc
- 코드 리뷰
- REST API
- JPA
- Data REST
Archives
- Today
- Total
woniper
[junit] junit 사용하기 본문
junit을 java에서 사용하기 위해서는 2가지 라이브러리가 필요하다.
junit.jar와 hamcrest-core.jar가 필요하다. 다운은 https://github.com/junit-team/junit/wiki/Download-and-Install 여기서 받을 수 있고, junit 공식 사이트는 http://junit.org/
junit 사용법을 설명하기 전에 Printer 예제를 만들어보았다.
Printer 예제는 git소스를 참고하고 설명은 하지 않겠다. 사실 junit 사용법만 익히기 위해서 Printer 예제는 볼 필요없다. 아래 설명한 어노테이션만 잘 숙지하면 된다.
아래는 Printer를 테스트하는 테스트 코드이다.
- @Before : @Test 메소드가 있는 클래스는 @Test 메소드가 실행 될 때마다 객체가 생성되고 실행된다. 쉽게 말해서 @Test 메소드가 2개라면 2번 실행하기 위해 객체 생성을 2번한다는 말이다. @Before 메소드는 @Test 메소드가 실행되기 전에 반드시 실행되게한다. @Test 메소드가 마다 공통으로 사용하는 데이터를 @Before 메소드에서 실행하는 것인데, 여기서 공통으로 사용하는 데이터를 fixture라고 한다.
- @BeforeClass : @Before에서 설명 했듯이 @Test 메소드 실행 할 때마다 객체를 생성한다고 설명했는데, 이때 생성되는 객체가 최초에 한번만 실행되는 어노테이션이다.
- @After : @Test 메소드가 실행된 후 실행된다.
- @AfterClass : 객체가 최초 한번 생성 된 후 실행된다.
- @Test : @Test 메소드는 테스트를 수행하는 메소드다. 아래 예제에 expected가 붙은 @Test가 있는데 이는 예외 상황을 테스트 하기 위한 기능이다.
- @Ignore : 테스트를 실행하지 않게 한다. @Test가 붙어 있지만, @Ignore가 붙어 있는 메소드라면 테스트 대상 메소드가 아니다.
package net.woniper.se.junit.test; import net.woniper.se.junit.BlackPrint; import net.woniper.se.junit.NotSupportImagePrint; import net.woniper.se.junit.Printer; import org.junit.*; public class PrintTest { Printer printer; @Before public void setUp() throws Exception { System.out.println("setUp"); printer = new Printer(); } @BeforeClass public static void beforeClass() { System.out.println("beforeClass"); } @Test public void testColorPrint() throws Exception { printer.btnPrint(); Assert.assertEquals("COLOR", printer.getKind()); } @Test public void testBlackPrint() throws Exception { printer.setPrint(new BlackPrint()); Assert.assertEquals("BLACK", printer.getKind()); } @Test @Ignore public void testIgnore() throws Exception { System.out.println("testIgnore"); } @Test(expected = NotSupportImagePrint.class) public void testImagePrint() throws Exception { printer.setPrint(new BlackPrint()); printer.imagePrint(); } @After public void after() { System.out.println("after"); printer.off(); } @AfterClass public static void afterClass() { System.out.println("afterClass"); } }
'Framework' 카테고리의 다른 글
JPA SLiPP 발표자료 (3) | 2015.09.22 |
---|---|
[junit] Spring-Test 사용하기 (0) | 2015.05.21 |
[JPA] Entity 객체 생명주기(Lifecycle)와 Persistence Context (4) | 2015.05.12 |
[JPA] @ManyToMany, N:M 관계 매핑 (0) | 2015.05.12 |
[JPA] @OneToMany / @ManyToOne, 1:N / N:1 관계 매핑 (0) | 2015.05.12 |
Comments