jUnit과 Mockito를 이용한 단위테스트 기초 1일차

19 Jun 2017 JUnit, mockito

테스트 역사

  • 최초의 버그 - 애니악(진공 컴퓨터)에서 실제로 살아있는 벌레(버그)가 들어가 타 죽으면서 오류가 발생

최초의버그

테스트의 필요성

  • 소프트웨어가 올바르게 동작하지 않는 경우 - 금전,시간,비즈니스 이미지 손실 발생
  • 테스트 주도 개발(TDD) - 프로그래머가 자신의 코드를 잘 설계하도록 함
  • TDD를 통해 SUT(System Under Test)를 구상1

JUnit

  • Kent Beck이 Smalltalk를 위해 개발한 프레임워크, SUnit의 후속
  • xUnit으로 통칭되는 테스트 프레임워크를 java에 포팅해서 jUnit

  • JUnit 4.x
    • java 5 Annotation 지원
    • TestCase 클래스 상속 받아야 한다는 제약 해소
    • Test라는 글자로 method이름을 시작해야 한다는 제약을 해소 @Test를 붙임
    • 좀 더 유연한 픽스처 @BeforeClass, @AfterClass, @Before, @After
    • 시간제한 테스트를 지원 @Test(timeout=1000)
    • 예외 테스트를 지원 @Test(expected=NumberFormatException.class)
    • 테스트 무시 기능을 제공 @ignore("this method isn't working yet")
@BeforeClass, @AfterClass, @Before, @After
@Test(timeout=1000)
@Test(expected=NumberFormatException.class)
@ignore("this method isn't working yet")

강의자료

  • Namoosori-UnitTest(ver3.4.1).pdf
  1. 테스트 코드를 먼저 작성하고, 그 테스트를 통과하는 실제코드를 단계적으로 만들어가면서 막막한 비지니스 코드 구상과 작성을 용이하게 해 준다.