코드 그라데이션

230317 수업 조건문, 반복문 (2) 본문

Java, SpringBoot 추가 공부

230317 수업 조건문, 반복문 (2)

완벽한 장면 2023. 3. 20. 10:03

4.

로그인 코드 메서드로 분리

 if (id.equals(inputId)) {
      if (!pw.equals(inputPw)) {
        System.out.println("비밀번호가 틀립니다.");
      } else {
        System.out.println("로그인 되었습니다.");
      }
    }
    else {
      System.out.println("존재하지 않는 회원입니다.");
    }

위에 것을 아래 것처럼 분리

import java.util.Scanner;

public class Login2_method {

  public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);
    String inputId = sc.next();
    String inputPw = sc.next();

    String id = "hello";
    String pw = "world";

    login(id, pw, inputId, inputPw); // 메인 메서드에서 로그인 실행

  }
  public static boolean login(String id, String pw, String inputId, String inputPw) {
    // if -> equals 비교 -> return값 true/false
    if (id.equals(inputId)) { // id값이 입력한 아이디와 같은 경우
      if (!pw.equals(inputPw)) {
        return false; // 비밀번호가 일치하지 않으면 로그인 실패
      } else {
        return true; // 로그인 성공(id == inputId
      }
    } else {
      return false; // id가 입력한 아이디와 다른 경우 로그인 실패
    }
  }

}

여기 로그인 메서드에서는 Scanner를 사용해서 입력 받는 게 아니라

(Scanner가 있으면 입력과 검증을 각각 해야하는 번거로움. 우리가 의도한 것은 이게 아니었잖아)

아예 main 메서드에서 입력을 받아서 매개변수로 받아오는 것이 더 낫지. 

그렇게 작성했다.

 

 

5. 

로그인 메서드 테스트 코드 작성

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

class Login2_methodTest {

  @Test
  @DisplayName("로그인 성공 테스트")
  void login() {
    // given
    String id = "hello";
    String pw = "world";
    String inputId = id;
    String inputPw = pw;
    // 일일이 데이터 값을 하드코딩 해주었음.

    // when
    boolean login_success = Login2_method.login(id, pw, inputId, inputPw);

    //then
    assertTrue(login_success);
  }

  @Test
  @DisplayName("로그인 실패 테스트- 비밀번호가 일치하지 않는 경우")
  void failslogin1() {
    // given
    String id = "hello";
    String pw = "world";
    String inputId = id;
    String inputPw = "strange"; //inputpw에 이상한 값을 넣었음.

    // when
    boolean login_fails1 = Login2_method.login(id, pw, inputId, inputPw);

    // then
    assertFalse(login_fails1);
  }

  @Test
  @DisplayName("로그인 실패 테스트- 비밀번호가 일치하지 않는 경우")
  void failslogin2() {
    // given
    String id = "hello";
    String pw = "world";
    String inputId = "goodbye"; //inputId에 이상한 값 넣었음.
    String inputPw = "strange"; // inputpw에 이상한 값 넣었음.

    // when
    boolean login_fails2 = Login2_method.login(id, pw, inputId, inputPw);

    // then
    assertFalse(login_fails2);
  }
}
728x90
Comments