Testing Codes

    [JUnit5] @BeforeEach와 @BeforeAll은 어떤 차이가 있을까?

    @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를 출력하며, ..

    [JUnit5] @BeforeEach를 사용한 테스트 환경 설정

    하나의 클래스에 대한 여러 테스트 만들기 테스트를 작성하게 되면 하나의 클래스에 여러 테스트가 작성된다. 예를 들어 다음과 같이 가변 인자로 받는 모든 정수에 대해 곱하기를 실행하는 SimpleMultiplier 객체가 있다고 해보자. class SimpleMultiplier() { fun multiplyAll(vararg numbers: Int): Int { return numbers.fold(1) { acc, number -> acc * number } } } 이 객체에 대한 간단한 테스트 케이스와 테스트를 작성하면 다음과 같다. 1. 일반적인 곱하기가 제대로 실행되는지 살펴야 한다. @Test fun `check_2_multiply_3_is_6`() { // Given val simpleMultip..

    [Unit Testing] JUnit5를 사용해 Kotlin 유닛 테스트 환경 설정하고 간단한 테스트 실행해보기

    코틀린 환경에서 JUnit 프레임웍을 사용한 테스팅 Kotlin 유닛 테스트 환경을 설정하기 위해서는 일반적으로 JUnit 프레임웍을 사용한다. JUnit 프레임웍은 JUnit4와 JUnit5를 모두 사용할 수 있고, 아직 많은 회사들에서 JUnit4를 사용하고 있지만 이번 글에서는 JUnit5를 사용해 개발환경을 설정하는 방법에 대해 다룬다. 프로젝트에 JUnit5 의존성 설정하기 프로젝트에 JUnit5에 대한 의존성을 설정하기 위해서는 build.gradle.kts 스크립트를 다음과 같이 바꿔야 한다. JUnit5를 사용하려면 dependencies 블록의 junit-jupiter-api을 testImplementation을 사용해 컴파일 시간의 의존성을 설정하고, testRuntimeOnly를 사용..