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 이클립스에 추가