*TDD방법론(Test Drive Development)
: 테스트 주도 개발
을 해보기 위해 아래와 같이 구성할 수 있다.
우선 아래 'build.gradle'에 필요한 재료를 가져온다.
#build.gradle
plugins {
id 'java'
}
group 'org.example'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
testImplementation 'org.assertj:assertj-core:3.11.1'
}
test {
useJUnitPlatform()
}
아래 위치의 코드에 대한 Test Case를 만들기 위해서는
#Solution 소스코드
package com.ll.level0.p120829;
public class Solution {
public double solution(int angle) {
if(angle == 180) return 4;
else if(angle > 90) return 3;
else if(angle == 90) return 2;
return 1;
}
}
아래 위치에서 동일한 경로에 테스트 케이스를 만들어 준다.
#Test Case 소스코드
package com.ll.level0.p120829;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
public class Tests {
@Test
@DisplayName("70 입력시 1 반환 ")
void t1(){
assertThat(new Solution().solution(70)).isEqualTo(1);
}
@Test
@DisplayName("91 입력시 3 반환")
void t2(){
assertThat(new Solution().solution(91)).isEqualTo(3);
}
@Test
@DisplayName("180 입력시 4 반환")
void t3(){
assertThat(new Solution().solution(180)).isEqualTo(4);
}
@Test
@DisplayName("90 입력시 2 반환")
void t4(){
assertThat(new Solution().solution(90)).isEqualTo(2);
}
}
아래와 같은 이미지와 같이 '전체케이스/특정케이스'에 대한 결과값을 얻을 수 있다.