Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

프로그래밍 끄적끄적

[SpringBoot] 스프링 입문 - 회원 관리 예제(테스트 케이스 작성-리포지토리 테스트) 본문

백엔드/스프링

[SpringBoot] 스프링 입문 - 회원 관리 예제(테스트 케이스 작성-리포지토리 테스트)

soeunkk 2021. 7. 28. 13:00
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
public class MemoryMemberRepositoryTest {
 
    MemoryMemberRepository repository = new MemoryMemberRepository();
 
    //@AfterEach: @Test 가 끝날 때마다 진행
    @AfterEach
    public void afterEach() {
        repository.clearStore();    //테스트가 끝날 때마다 저장소를 지움
    }
 
    @Test
    public void save() {
        Member member = new Member();
        member.setName("spring");
 
        repository.save(member);
 
        Member result = repository.findById(member.getId()).get();  //get을 통해 Optional에서 꺼내서 가져옴
 
        //기능이 제대로 동적하는지 검증
        System.out.println("result = " + (result == member ));  //콘솔창을 통해 개발자가 직접 확인해야 함
        //Assertions 를 통해 확인(동일하면 실행 성공, 동일하지 않으면 오류)
        Assertions.assertEquals(member, result);            //jupiter
        Assertions.assertThat(member).isEqualTo(result);    //assertj -좀 더 가독성이 좋음
 
    }
 
    @Test
    public void findByName() {
        Member member1 = new Member();
        member1.setName("spring1");
        repository.save(member1);
 
        Member member2 = new Member();  //rename 단축키: shift + f6
        member2.setName("spring2");
        repository.save(member2);
 
        Member result = repository.findByName("spring1").get();
        assertThat(result).isEqualTo(member1);
    }
 
    @Test
    public void findAll() {
        Member member1 = new Member();
        member1.setName("spring1");
        repository.save(member1);
 
        Member member2 = new Member();
        member2.setName("spring2");
        repository.save(member2);
 
        List<Member> result = repository.findAll();
 
        assertThat(result.size()).isEqualTo(2);
    }
}
cs

Line 5) @AfterEach

@Test에 적힌 테스트가 끝날 때마다 수행한다. 주로 메모리를 지우기 위해 사용된다.

 

Line 24) assertThat([확인할 값]).isEqualTo([기대하는 값]);

테스트 값이 기대하는 값과 일치하는지 확인하기 위해 쓰인다. 

일치하면 오류 없이 다음으로 넘어가지만 일치하지 않으면 오류를 내기 때문에, 콘솔창에서 개발자가 일일이 확인하는 것보다 훨씬 효율적이다.

 

 

Comments