: 소프트웨어가 예상하지 못한 결과를 내는 것
이러한 이유때문에 개발 코드 배포 전 버그를 최대한으로 많이 찾아내야 함!
- "테스트"
개발자가 직접 본인이 작성한 코드를 검증하기 위해 테스트 코드 작성
JUnit이란 자바 프로그래밍 언어 용 단위 테스트 프레임워크!
1. 테스트 코드가 필요한 파일 내에서 마우스 오른쪽 클릭 후 "Generate..."클릭
2. "Test..." 클릭
3. OK 눌러서 생성
프로그래머스 입문 문자열 두배 문제로 테스트 코드 작성을 해보겠다.
public class Solution { public int[] solution(int[] numbers) { int[] answer = new int[numbers.length]; for(int i = 0;i < numbers.length ; i++) answer[i] = numbers[i] * 2; return answer; } }
위에 테스트 코드 설정을 해주면 파일 경로도 똑같이 만들어짐
이후에 코드를 작성해줬다.
완전 간단하게 테스트 코드 작성해보기
1. 테스트할 Solution 클래스의 생성자 호출
2. 테스트할 배열 선언
3. 실제로 나올 결과를 Solution 클래스에 solution 메소드를 이용해 값을 대입해줌
4. 예상되는 결과 배열로 선언해주고
5. 두 배열이 일치하는지 판단하기 위해 Assertions.assertArrayEquals()를 이용해 예상되는 결과와 실제로 나온 값을 비교해준다.
(6. 눈으로 보기 편하게 결과를 출력문 이용해 출력한다.)
7. 메소드 옆 실행 버튼으로 테스트 해보고 성공인지 확인한다.
public abstract class Assert {
/**
* Assert a boolean expression, throwing an {@code IllegalStateException}
* if the expression evaluates to {@code false}.
* <p>Call {@link #isTrue} if you wish to throw an {@code IllegalArgumentException}
* on an assertion failure.
* <pre class="code">Assert.state(id == null, "The id property must not already be initialized");</pre>
* @param expression a boolean expression
* @param message the exception message to use if the assertion fails
* @throws IllegalStateException if {@code expression} is {@code false}
*/
public static void state(boolean expression, String message) {
if (!expression) {
throw new IllegalStateException(message);
}
}
// boolean 표현식을 나타냄
Assertions.assertEquals()
Assertions.assertArrayEquals()
😂 지금은 간단한 테스트 코드를 겨우 작성할 수 있는 실력이라 다음에 프로젝트 때 테스트 코드를 작성할 일이 생기면 더 자세하게 설명해보겠다.