[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가 붙어 있는 메소드라면 테스트 대상 메소드가 아니다.
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | 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" ); } } |
출처 : https://blog.woniper.net/271?category=531455
'테스트 코드 > JUnit' 카테고리의 다른 글
TDD - JUnit 테스트 코드 구성 방법.(테스트 코드 조직) (0) | 2021.04.17 |
---|---|
[TDD] Test code 접근 방식, Mock, Mockito, BDD (0) | 2021.04.16 |
Mockito 공부하기 #2 (0) | 2021.04.16 |
Mockito 공부하기 #1 (0) | 2021.04.16 |
@BeforeClass, @AfterClass ,@Before,@After 순서 알아보기 (0) | 2021.03.30 |
[JUnit] JUnit5 사용법 - Parameterized Tests (0) | 2020.12.23 |
JUnit 5 Parameterized Tests 사용하기 (0) | 2020.12.23 |
[junit] Spring-Test 사용하기 (0) | 2020.09.07 |