Kotlin

하나의 클래스에 대한 여러 테스트 만들기 테스트를 작성하게 되면 하나의 클래스에 여러 테스트가 작성된다. 예를 들어 다음과 같이 가변 인자로 받는 모든 정수에 대해 곱하기를 실행하는 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..
코틀린 환경에서 JUnit 프레임웍을 사용한 테스팅 Kotlin 유닛 테스트 환경을 설정하기 위해서는 일반적으로 JUnit 프레임웍을 사용한다. JUnit 프레임웍은 JUnit4와 JUnit5를 모두 사용할 수 있고, 아직 많은 회사들에서 JUnit4를 사용하고 있지만 이번 글에서는 JUnit5를 사용해 개발환경을 설정하는 방법에 대해 다룬다. 프로젝트에 JUnit5 의존성 설정하기 프로젝트에 JUnit5에 대한 의존성을 설정하기 위해서는 build.gradle.kts 스크립트를 다음과 같이 바꿔야 한다. JUnit5를 사용하려면 dependencies 블록의 junit-jupiter-api을 testImplementation을 사용해 컴파일 시간의 의존성을 설정하고, testRuntimeOnly를 사용..
삽입 정렬 알고리즘 이란 무엇인가? 삽입 정렬(Insertion Sort)은 배열의 각 원소를 해당 원소의 앞쪽에 있는 정렬된 배열의 적절한 위치에 삽입하는 방식으로 작동하는 배열이다. 각 원소가 삽입될 때 앞쪽 배열의 정렬된 위치에 들어가서 앞쪽 배열은 무조건 모두 정렬된 상태라는 것을 이용한 알고리즘이다. 예를 들어 아래와 같은 배열이 있을 때 둘째 원소부터 삽입 정렬을 수행한다고 하자. 둘째 원소는 첫 원소의 앞에 삽입된다. 그러면 아래와 같은 형태의 배열이 나오고 포인터를 다음으로 이동시켰을 때 앞쪽 배열([4, 5])은 모두 정렬되어 있는 것을 볼 수 있다. 이를 남은 원소인 6, 2, 1에 대해서 마저 수행하면 정렬이 완료된다. 삽입 정렬에서 특정 값을 특정 위치에 삽입하기 위한 알고리즘 배열..
선택 정렬 알고리즘이란? 선택 정렬 알고리즘은 주어진 배열의 특정 구간에서 최대값을 찾아 해당 구간의 마지막 위치의 값과 위치 변경을 반복해 정렬을 수행하는 알고리즘이다. 이를 간단히 표현하면 다음과 같다. 1. 포인터를 배열의 마지막 위치에 위치시킨다. 2. 배열 맨 앞의 값부터 포인터의 위치까지 값 중 최대값을 찾는다. 3. 찾은 최대값을 포인터의 위치의 값과 교환한 후, 포인터를 하나 앞으로 옮긴다. 4. 1~3의 과정을 포인터가 배열의 맨 앞 원소로 이동할 때까지 반복한다. 위의 방법에서는 최대값을 찾아 마지막 위치의 값과 교환하는 방식을 사용했지만, 최소값을 찾아 맨 앞의 위치의 원소와 교환하는 방법도 선택 정렬 알고리즘이라 부른다. 이번 글에서는 최대값 방식으로 정렬을 하도록 하겠다. 선택 정..
Bubble Sort 알고리즘이란 무엇인가? Bubble Sort 알고리즘은 인접한 두 개의 원소를 반복적으로 비교해 순서를 바꾸는 방식으로 정렬하는 알고리즘이다. 배열이 있다고 했을 때 배열의 처음부터 끝까지 이를 한 번 반복하면 배열의 맨 마지막에는 가장 큰 원소가 남게 된다. 이후 한 번 더 반복하면 배열의 맨 마지막에는 배열에서 가장 큰 원소가, 배열의 맨 마지막에서 두 번째 자리에는 배열에서 두번째로 큰 원소가 위치하게 된다. 이를 원소의 개수만큼 반복하면 전체 원소가 순서대로 배치된다. 이 것이 Bubble Sort 알고리즘이라고 불리게 된 이유는 큰 원소가 점점 맨 뒤로 이동하는 것이 마치 Bubble(거품) 같아서 라고 한다. 아마 글로는 잘 이해가 가지 않을 것이다. 아래에서 그림으로 보..
Dev.Cho
'Kotlin' 태그의 글 목록 (9 Page)