테스트 역사
- 최초의 버그 - 애니악(진공 컴퓨터)에서 실제로 살아있는 벌레(버그)가 들어가 타 죽으면서 오류가 발생
테스트의 필요성
- 소프트웨어가 올바르게 동작하지 않는 경우 - 금전,시간,비즈니스 이미지 손실 발생
- 테스트 주도 개발(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
테스트 코드를 먼저 작성하고, 그 테스트를 통과하는 실제코드를 단계적으로 만들어가면서 막막한 비지니스 코드 구상과 작성을 용이하게 해 준다. ↩