[GP] Junit5를 사용한 Java 테스트 코드 작성

이 글은 N.K Dev Lab에서 작성된 글입니다.

안녕하세요. 오늘은 유닛 테스트에 대한 이야기를 해보고자 합니다. 프로그래밍 하다보면 자신이 작성한 코드가 원하는 형태로 작성되었는지 안되었는지를 테스트해보고 싶을 때가 있습니다. 저는 처음 프로그래밍을 GUI 프로그래밍으로 했다보니 그 결과를 보통 눈으로 확인하곤 했습니다.

하지만 CLI 프로그래밍을 하다보면 원하는 결과가 나오는지 안나오는지 일일이 손으로 입력하고 결과를 본다는 것이 쉽지만은 않습니다. 그럴 때 유닛 테스트를 사용해보세요.


What is Unit Test ?

그렇다면 유닛 테스트는 무엇인가요? 유닛 테스트는 컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도대로 정확히 작동하는지 검증하는 일련의 절차 과정입니다. 좀 더 자세한 설명을 위해서 예시를 한 번 들어보도록 할게요.

여러분들이 어떤 알고리즘 코드를 작성한다고 가정해봅시다. 그 알고리즘은 숫자를 입력 받아 해당 숫자가 팰린드롬인지 아닌지를 작성하는 알고리즘 코드입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Solution {
public boolean solution(int num) {
if (num < 0 || (num % 10 == 0 && num != 0))
return false;

int rh = 0;

while (num > rh) {
rh = rh * 10 + num % 10;
num /= 10;
}

return num == rh || num == rh / 10;
}
}

이러한 코드를 작성했다고 했을 때, 이 코드가 정상적으로 동작하는지 확인하려면 보통은 아래와 같이 Entry Point를 사용하여 직접 돌려보는 방법을 사용할 것입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class Solution {
public static boolean solution(int num) {
if (num < 0 || (num % 10 == 0 && num != 0))
return false;

int rh = 0;

while (num > rh) {
rh = rh * 10 + num % 10;
num /= 10;
}

return num == rh || num == rh / 10;
}

public static void main(String[] args) {
int num = 1111;
System.out.println(solution(num));
}
}

하지만 이러한 코드는 그저 이 로직이 돌아가는지 돌아가지 않는지만 평가해볼 수 있습니다. 이 값이 제대로 도출되는지 도출되지 않는지까지는 파악하기 어렵죠. 그래서 우리는 조건문을 사용해볼 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class Solution {
public static boolean solution(int num) {
if (num < 0 || (num % 10 == 0 && num != 0))
return false;

int rh = 0;

while (num > rh) {
rh = rh * 10 + num % 10;
num /= 10;
}

return num == rh || num == rh / 10;
}

public static void main(String[] args) throws Exception {
int[] num = {1111, 1412, 2020, 1212};
boolean[] evl = {true, false, true, true};

for (int i = 0; i < num.length; i++) {
if (solution(num[i]) != evl[i])
System.err.println("FAIL: " + i);
else
System.out.println("SUCCESS: " + i);
}
}
}

위와 같은 형태로 코드를 테스트하게 되면 원하는 답이 제대로 도출되는지도 확인할 수 있죠. 하지만 이 작업은 뭔가 번거롭고 알고리즘이 조금이라도 복잡해지는 등이 발생하게 되면 오히려 테스트 코드 작성에 더 많은 비용이 들어갈 수도 있습니다.


Junit

Java에서는 Junit이라는 모듈을 사용하여 테스트 코드를 간단한 로직만으로도 작성할 수 있습니다. 오늘은 이 모듈을 사용하여 Java에서 테스트 코드를 작성하고 활용하는 방법에 대해 이야기 하려 합니다. 이 포스트에서 사용할 IDE는 아래와 같습니다.

  • IntelliJ IDEA


Create Program code

먼저 간단히 사용 방법에 대해 알아보겠습니다.


이어서 읽으시려면 아래의 버튼을 클릭해주세요.


... 계속 읽기



comments powered by Disqus

Tistory Comments 0