1
1
import domain .StringCalculator ;
2
- import org .junit .jupiter .api .Assertions ;
3
2
import org .junit .jupiter .api .Test ;
4
3
import org .junit .jupiter .params .ParameterizedTest ;
5
4
import org .junit .jupiter .params .provider .CsvSource ;
8
7
9
8
import java .util .List ;
10
9
11
- import static org .junit .jupiter .api .Assertions .assertEquals ;
12
- import static org .junit .jupiter .api .Assertions .assertThrows ;
10
+ import static org .assertj .core .api .Assertions .*;
13
11
14
12
public class StringCalculatorTest {
15
13
private final StringCalculator stringCalculator = new StringCalculator ();
16
14
17
15
@ ParameterizedTest
18
- @ ValueSource (strings = {"1,2,3:4" , "1 , 2: 3,4 " })
16
+ @ ValueSource (strings = {
17
+ "1,2,3:4" ,
18
+ "1 , 2: 3,4 "
19
+ })
19
20
public void 기본_구분자_문자열_계산기_테스트 (String str ) {
20
21
int actual = stringCalculator .calculate (str );
21
22
22
- assertEquals ( 10 , actual );
23
+ assertThat ( actual ). isEqualTo ( 10 );
23
24
}
24
25
25
26
@ ParameterizedTest
26
27
@ CsvSource ({
27
- " '//+\n ', '+' " ,
28
- " '// \n ', ' ' " ,
29
- " '//||\n ', '||' "
28
+ "'//+\n ', '+'" ,
29
+ "'// \n ', ' '" ,
30
+ "'//||\n ', '||'"
30
31
})
31
32
public void 커스텀_구분자_파싱_테스트 (String str , String expected ) {
32
33
String customDelimeter = stringCalculator .findCustomDelimeter (str );
33
34
34
- assertEquals ( expected , customDelimeter );
35
+ assertThat ( customDelimeter ). isEqualTo ( expected );
35
36
}
36
37
37
38
@ Test
@@ -40,21 +41,25 @@ public class StringCalculatorTest {
40
41
41
42
List <Integer > actual = stringCalculator .parseNumber (tokens );
42
43
43
- assertEquals ( List . of (1 , 2 , 3 , 4 ), actual );
44
+ assertThat ( actual ). containsExactly (1 , 2 , 3 , 4 );
44
45
}
45
46
46
47
@ Test
47
48
public void 문자열_리스트_정수_리스트로_변환_음수가_포함되면_예외_발생 () {
48
49
String [] tokens = {"1" , "2" , "-3" , "4" };
49
50
50
- assertThrows (RuntimeException .class , () -> stringCalculator .parseNumber (tokens ));
51
+ assertThatThrownBy (() -> stringCalculator .parseNumber (tokens ))
52
+ .isInstanceOf (RuntimeException .class )
53
+ .hasMessageContaining ("음수는 처리할 수 없습니다." );
51
54
}
52
55
53
56
@ Test
54
57
public void 문자열_리스트_정수_리스트로_변환_문자가_포함되면_예외_발생 () {
55
58
String [] tokens = {"a1" , "b" , " " , "4" };
56
59
57
- assertThrows (RuntimeException .class , () -> stringCalculator .parseNumber (tokens ));
60
+ assertThatThrownBy (() -> stringCalculator .parseNumber (tokens ))
61
+ .isInstanceOf (RuntimeException .class )
62
+ .hasMessageContaining ("문자열은 처리할 수 없습니다." );
58
63
}
59
64
60
65
@ ParameterizedTest
@@ -66,7 +71,7 @@ public class StringCalculatorTest {
66
71
public void 커스텀_구분자_문자열_계산기_테스트 (String str ) {
67
72
int actual = stringCalculator .calculate (str );
68
73
69
- assertEquals ( 10 , actual );
74
+ assertThat ( actual ). isEqualTo ( 10 );
70
75
}
71
76
72
77
@ ParameterizedTest
@@ -76,7 +81,9 @@ public class StringCalculatorTest {
76
81
"//\n 1;2;3;4"
77
82
})
78
83
public void 커스텀_구분자_형식에_맞지_않은_경우_예외_발생 (String str ) {
79
- assertThrows (RuntimeException .class , () -> stringCalculator .calculate (str ));
84
+ assertThatThrownBy (() -> stringCalculator .calculate (str ))
85
+ .isInstanceOf (RuntimeException .class )
86
+ .hasMessageContaining ("커스텀 구분자를 찾을 수 없습니다." );
80
87
}
81
88
82
89
@ ParameterizedTest
@@ -86,14 +93,16 @@ public class StringCalculatorTest {
86
93
" "
87
94
})
88
95
public void 문자열이_비어있는_경우_예외_발생 (String str ) {
89
- assertThrows (RuntimeException .class , () -> stringCalculator .calculate (str ));
96
+ assertThatThrownBy (() -> stringCalculator .calculate (str ))
97
+ .isInstanceOf (RuntimeException .class )
98
+ .hasMessageContaining ("문자열이 비어있습니다." );
90
99
}
91
100
92
101
@ Test
93
102
public void 구분자_없이_숫자만_입력한_경우 () {
94
103
String str = "1" ;
95
104
int actual = stringCalculator .calculate (str );
96
105
97
- assertEquals ( 1 , actual );
106
+ assertThat ( actual ). isEqualTo ( 1 );
98
107
}
99
108
}
0 commit comments