[개발] - Java/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
반응형