단위 테스팅

유닛 테스팅이 무엇인지 이해하기 위해서는 유닛이 무엇인지부터 알아야 한다. 유닛이란 무엇인가? 유닛 테스팅의 유닛이란 독립적인(isolated) 기능을 저장하는 컨테이너로, 독립적인 기능을 담는 함수나 클래스 혹은 모듈 모두가 유닛이 될 수 있다. 하지만, 객체 지향 프로그래밍(Object Oriented Programming)에서 유닛은 조금 더 명확한 의미를 가진다. 객체 지향 프로그래밍에서 기능에 대한 책임은 객체에 있으며, 따라서 일반적으로 기능을 담는 객체가 유닛이 된다. 기능을 담는 객체가 유닛이 된다는 것은 기능을 담지 않는 객체는 유닛이 되지 않는다는 뜻이며, Kotlin에서의 data class 나 Java의 POJO 등은 유닛이 되지 못한다. 유닛이 무엇인지 알았으면, 이제 유닛 테스팅..
private 함수 테스트 시 문제점 다음과 같은 양의 정수에 대해 곱셈을 실행하는 PositiveNumberMultiplier 클래스가 있다고 하자. 이 PositiveNumberMultiplier클래스는 정수를 가변인자로 받아 곱셈을 실행하는 multiplyAll 메서드를 가지고 있으며, multiplyAll메서드는 내부에서 가변인자로 들어온 모든 값이 양수인지 확인하는 isValid 함수를 가진다. class PositiveNumberMultiplier() { fun multiplyAll(vararg numbers: Int): Int { if (isValid(*numbers)) { throw IllegalArgumentException("인자는 양수여야 합니다") } return numbers.fo..
@BeforeEach와 @BeforeAll의 차이 @BeforeEach와 @BeforeAll는 실행 시점에 차이가 있다. 둘 모두 테스트 시작 전에 실행되는 것은 같지만, @BeforeEach는 개별 테스트 실행 전에 실행되며, @BeforeAll은 모든 테스트 실행 전에 한 번만 실행된다. @BeforeEach 사용해보기 예를 들어 다음과 같은 SimpleTest 테스트 코드를 살펴보자. class SimpleTest { @BeforeEach fun setUp() { println("Before Each") } @Test fun test1() { } @Test fun test2() { } } SimpleTest 테스트는 @BeforeEach가 붙은 setUp 함수에서 Before Each를 출력하며, ..
Dev.Cho
'단위 테스팅' 태그의 글 목록