WEB/Spring
스프링으로 테스트 케이스 만들기
hwahaha
2023. 12. 6. 15:32
start.spring.io 가서 파일 만들고 IDE에서 열면
src 하위 폴더에 test가 있을 것!
테스트하려는 클래스명+Test로 똑같이 만들어 주면 된다
실행 예시
Member
package hello.hellospring.domain;
public class Member {
private Long id;
private String name;
public Long getId() {
return id;
}
public String getName() {
return name;
}
public void setId(Long id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
}
MemoryMemberRepository
package hello.hellospring.repository;
import hello.hellospring.domain.Member;
import java.util.*;
public class MemoryMemberRepository implements MemberRepository{
private static Map<Long,Member> store=new HashMap<>();
private static long sequence=0L;
@Override
public Member save(Member member) {
member.setId(++sequence);
store.put(member.getId(),member);
return member;
}
@Override
public Optional<Member> findById(Long id) {
return Optional.ofNullable(store.get(id));
}
@Override
public Optional<Member> findByName(String name) {
return store.values().stream()
.filter(member -> member.getName().equals(name))
.findAny();
}
@Override
public List<Member> findAll() {
return new ArrayList<>(store.values());
}
}
MemoryMemberRepositoryTest
package hello.hellospring.repository;
import hello.hellospring.domain.Member;
import org.junit.jupiter.api.Test;
public class MemoryMemberRepositoryTest {
MemoryMemberRepository repository=new MemoryMemberRepository();
@Test
public void save(){
Member member=new Member();
member.setName("Spring");
repository.save(member);
Member result=repository.findById(member.getId()).get();
System.out.println(member==result);
}
}
실행결과
그러나 매번 실행창을 들여다 볼 수 없으니
코드의 System.out.println 문 보다
Assertions.assertThat(member).isEqualTo(result);
이렇게 바꿔주면 편리하다