Random

leverest96·2022년 12월 19일
0

Trouble Shooting

목록 보기
3/20
post-thumbnail

문제 상황

처음에는 Random한 닉네임을 만들기 위해 사용됐다. 아래가 그 코드이다. 근데 사실 내가 안만들어서 대충 알아두기만 할랬다.

Random random = new Random();

return random.ints('0', 'z' + 1)
             .filter(x -> (x <= '9' || x >= 'A') && (x <= 'Z' || x >= 'a'))
             .limit(length)
             .collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
             .toString();

하지만 여기서 문제는 내가 test 파일에서 multipart file을 mock 객체로 만들 때 발생했다.

추가 파일을 업로드하지 않고 mockMultipartFile을 설정하려니 byte[]에 대한 설정이 필요했고, 무작위로 설정하자니 이상했다.

따라서 Random 값으로 byte[] 값을 generate 시키기로 했다.

위의 예시처럼 하려했더니 return 값이 void라 적용하지 못했다.

문제 해결

byte[]의 경우 random으로 generate하기 위해선 아래와 같이 따로 선언이 된 byte[]를 이후에 설정해주는 방식을 도입해야했다.

final byte[] bytes = new byte[8];
new Random().nextBytes(bytes);

https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Random.html

profile
응애 난 애기 개발자

0개의 댓글