[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

λ¨Όμ € κ°„λ‹¨νžˆ μ‚¬μš© 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.


μ΄μ–΄μ„œ μ½μœΌμ‹œλ €λ©΄ μ•„λž˜μ˜ λ²„νŠΌμ„ ν΄λ¦­ν•΄μ£Όμ„Έμš”.


... 계속 읽기



λ°˜μ‘ν˜•
TAGS.

Tistory Comments