본문 바로가기
IT/Java Spring

jUnit Test에서 assertThat에 대해서 알아봅시다 !!! ( Java Spring boot )

반응형

안녕하세요 !! 

이번에는 jUnit에서 사용하는 assertThat에 대해서 쓰임을 알아보려고 합니다 !!! 

 

assertThat

 

주로 테스트 코드에서 사용하는 메서드로, 어떤 값이 기대한 조건을 만족하는지 확인할 때 사용합니다. 쉽게 말해, 테스트할 때 결과가 예상한 대로 나왔는지 검사하는 도구입니다 !!

 

테스트 조건 확인:

  • 특정 값이 기대한 조건을 만족하는지 확인합니다.
  • 예를 들어, 어떤 숫자가 특정 범위 내에 있는지, 문자열이 예상한 값과 일치하는지 등을 검사합니다.

이런것들입니다 !!  한번 예제를 봐볼까요 ?? 

 

public class PasswordEncoderTest {
	@Test
	public void testEncodePassword() {
		BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
		String rawPassword = "zxcvvvv";
		String encodePassword = passwordEncoder.encode(rawPassword);
		
		String rawPassword2 = "zxcvvvvvvv";
		String encodePassword2 = passwordEncoder.encode(rawPassword2);
		
		System.out.println(encodePassword);
		
		boolean matches = passwordEncoder.matches(rawPassword, encodePassword);
		
		assertThat(matches).isTrue();
	}
}

 

자 ! 위에처럼 썼습니다 !! 그러면 결과값이 어떨까요 ?? 

무사히 성공했습니다 !!! rawPassword과 그것을 encode한 encodePassword의 값과 matches한 값을 assertThat을 써서 isTrue한것이죠 !!! 

 

그러면 이번엔 rawPassword의 값과 rawPassword2를 인코딩 한 값을 비교해볼까요 ?? 코드내용은 위에와 쪼금 다릅니다 !! 비교를 rawPassword와 encodePassword2랑 비교하죠 !! 

public class PasswordEncoderTest {
	@Test
	public void testEncodePassword() {
		BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
		String rawPassword = "zxcvvvv";
		String encodePassword = passwordEncoder.encode(rawPassword);
		
		String rawPassword2 = "zxcvvvvvvv";
		String encodePassword2 = passwordEncoder.encode(rawPassword2);
		
		System.out.println(encodePassword);
		
		boolean matches = passwordEncoder.matches(rawPassword, encodePassword2);
		
		assertThat(matches).isTrue();
	}
}

 

 

아래의 사진처럼 실패하면서 false가 나왔다고 알려주죠 ^^ 

 

참 유용하지 않나요?? ㅎㅎ 

 

아래처럼 다양한 방식으로도 사용 할 수 있습니다 !!! assertThat에는 다양하게 테스트 할 것들이 있으니 찾아보면서 합시다 ^^ 

public class MyTests {

    @Test
    public void testNumber() {
        int actual = 5;
        assertThat(actual, is(5));  // actual 값이 5인지 확인합니다.
    }

    @Test
    public void testString() {
        String actual = "Hello, World!";
        assertThat(actual, containsString("World"));  // actual 문자열에 "World"가 포함되어 있는지 확인합니다.
    }

    @Test
    public void testList() {
        List<String> actual = Arrays.asList("apple", "banana", "cherry");
        assertThat(actual, hasSize(3));  // 리스트의 크기가 3인지 확인합니다.
        assertThat(actual, contains("apple", "banana", "cherry"));  // 리스트가 해당 항목들을 포함하는지 확인합니다.
    }
}

 

자 ! 마지막으로 요약해봅시다 ! 

 

assertThat

 

  • assertThat은 테스트 코드에서 값이 기대한 조건을 만족하는지 확인할 때 사용하는 메서드입니다.
  • 주로 JUnit과 Hamcrest 라이브러리와 함께 사용되어 가독성 좋고 명확한 테스트 코드를 작성할 수 있게 도와줍니다.

다음에도 좋은 정보를 가지고 오겠습니다 ! 

 

반응형