[Spring MVC] 테스팅
public class RandomPasswordGeneratorTest {
@DisplayName("실습 3: 랜덤 패스워드 생성 테스트")
@Test
public void generateTest() {
// given
int numberOfUpperCaseLetters = 2;
int numberOfLowerCaseLetters = 5;
int numberOfNumeric = 2;
int numberOfSpecialChars = 1;
String password = RandomPasswordGenerator.generate(numberOfUpperCaseLetters,
numberOfLowerCaseLetters, numberOfNumeric, numberOfSpecialChars);
// when
int expected = 10;
int actual = password.length();
// then
assertEquals(expected, actual);
assertEquals(numberOfUpperCaseLetters, getUpperNum(password));
assertEquals(numberOfLowerCaseLetters, getLowerNum(password));
assertEquals(numberOfNumeric, getNumNum(password));
assertEquals(numberOfSpecialChars, getSpecialNum(password));
}
private int getUpperNum(String password){
int count = 0;
for(int i=0; i<password.length(); i++){
if(password.charAt(i)>=65 && password.charAt(i)<=90) count++;
}
return count;
}
private int getLowerNum(String password){
int count =0;
for(int i=0; i<password.length(); i++){
if(password.charAt(i)>=97 && password.charAt(i)<=122) count++;
}
return count;
}
private int getNumNum(String password){
int count=0;
for(int i=0; i<password.length(); i++){
if(password.charAt(i)-'0'>=0 && password.charAt(i)-'0'<=9) count++;
}
return count;
}
private int getSpecialNum(String password){
int count=0;
for(int i=0; i<password.length(); i++){
if(password.charAt(i)>=33 && password.charAt(i)<=47) count++;
}
return count;
}
}
<느낀 점>
데일리 코딩이 너무 어려워서, 프로그래머스 쉬운 난이도의 문제부터 풀어보기로 했다.
당분간 쉬운 문제들을 풀며, 알고리즘에 자신감과 흥미를 가질 필요가 있다고 판단.
물론 나중에는 결국 어려운 문제들을 뚫어야겠지만.
오늘 단위 테스트는 '비교적' 쉬웠다. 지금까지는 JPA가 가장 어려웠던 것 같다.
하지만 개인 실습 코드 너무 비효율적으로 짜서 현타옴..ㅋㅋㅋ 부끄럽지만 일단 제출은 함.
JPA과제는 싹 밀고 새로 해봐야할 것 같다.
이제 JPA 유튜브 강의 듣고, 강의 듣다가 지겨우면 프로그래머스 문제도 몇 개 더 풀고 자야겠다.