
domain이라는 폴더 안에 생성해주었다.Long id, String name, 추가로 String pw 변수를 추가했다.interface로 구현하고 회원 리포지토리를 직접 구현할 구현체로 MemoryMemberRepository 클래스를 생성했다.HashMap 변수 store를 생성하고 데이터를 저장한다.save(회원생성), findById(아이디로 검색), findByName(이름으로 검색), findAll(전체회원조회)// MemoryMemberRepository.java
@Override
public Optional<Member> findById(Long id) {
// id 조회결과 없어서 null 반환되는 경우를 대비해 optional로 감싸서 반환
return Optional.ofNullable(store.get(id));
}
stream 객체를 제공하고 있다.->를 사용하나보다. 그냥 강의에서 쓰길래 따라 작성했었는데 다행히 작동한다.// java filter : 조건에 맞는 객체 찾으면 반환, 없으면 optional로 감싸서 반환됨
return store.values().stream()
.filter(member -> member.getName().equals(name))
.findAny();
강의에선 intelliJ를 사용했는데 나는 이클립스에서 하고 있어서 가끔 IDE 사용법이 다르다. 이클립스에서 JUnit test case를 생성하고 사용하는 방법을 별도로 검색했다.
자바 JUnit 사용 방법 & 단위 테스트 방법
지금까지 /test 패키지 안에 파일을 생성하거나 테스트코드 작성, 실행을 해 본적이 없었는데 이번에 하게되어 흥미로웠다.
test 파일은 보통 기존 파일명+test로 짓는다.
@Test : 메소드에 test 어노테이션 추가 시 해당 메소드를 테스트한다. 테스트 순서는 메소드 순서 등과 상관이 없어 보장 불가능 -> 각 테스트 독립적으로 구성
@AfterEach : 모든 테스트 메소드 실행 후 실행되는 함수의 경우 (ex. static 값 초기화)
@BeforeEach : 모든 테스트 메소드 실행 전 실행되는 함수의 경우 (ex. 의존성 주입)
join(), findMembers() 등 좀더 회원 입장을 반영하는 메소드 제목 사용깃허브 로그인 실패 해결-personal access token 이클립스에 추가