끝을 보는 용기

Day 090 - Spring 심화 프로젝트 5단계 완료, 첫 테스트 코드 작성

writingforever162 2025. 1. 4. 23:48

1. 프로젝트 진행 상황 및 계획[깃허브 링크]

🥇 Spring 심화 프로젝트 도전 과제 5단계 끝내기 (완료)
🥈 Spring 심화 프로젝트 필수 과제 2단계 끝내기 (진행 중, 25.01.05 완료 목표)

🥉 Spring 심화 프로젝트 도전 과제 6단계 끝내기 (진행 중, 25.01.05 완료 목표)

 

2. 회고 

package org.example.expert.config;

import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;

import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.springframework.test.context.junit.jupiter.SpringExtension;

@ExtendWith(SpringExtension.class)
class PasswordEncoderTest {

  @InjectMocks
  private PasswordEncoder passwordEncoder;

  @Test
  void matchesMethodWorksCorrectly() {
    // given
    String rawPassword = "testPassword";
    String encodedPassword = passwordEncoder.encode(rawPassword);

    // when
    boolean matches = passwordEncoder.matches(
        rawPassword,
        encodedPassword
    );

    // then
    assertTrue(matches);
  }

  @Test
  void matchesMethodReturnsFalseWhenPasswordsMismatch() {
    // given
    String rawPassword = "testPassword";
    String encodedPassword = passwordEncoder.encode(rawPassword);

    // when
    boolean mismatches = passwordEncoder.matches(
        "wrongPassword",
        encodedPassword
    );

    // then
    assertFalse(mismatches);
  }
}

테스트 코드 수정하기가 도전 과제 5단계 중 첫 번째 과제였는데, 고치는 김에 한 가지를 직접 작성해 보았다. 아직 테스트 코드를 어디까지 언제 작성해야 할지 몰라서 일단 생각난 김에 써 보았다. 다행히 테스트는 성공했다.

처음에는 느낌표가 뜰 때마다 심장이 철렁했는데, 이제는 성공했다는 표시가 뜰 때마다 내 실력을 의심하게 되었다. 정말 제대로 된 테스트인가 의심하는 습관이 생겨 버렸다. 새벽에 늦게까지 오류를 해결한 끝에 5단계를 완전히 마무리 지었다. 제대로 공부해서 해냈다는 느낌은 사실 들지 않았다. 우선 도전 과제를 시도했다는 데에 의의를 두고 남은 기간에 최대한 모든 단계를 도전할 수 있도록 노력해야겠다. 오늘 오후에 오랜만에 찬 공기를 마시며 산책하니 여태 쌓아둔 고민이 조금이나마 바람을 타고 날아가는 기분이 들었다. 틈틈이 바깥 공기도 쐬면서 건강하게 코딩하는 습관을 다져야겠다.