์Šคํ”„๋ง ์ž…๋ฌธ - (9) ํšŒ์› ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ž‘์„ฑ

2023. 1. 20. 17:02ยทSpring/Spring ์ž…๋ฌธ

 

๊ฐœ๋ฐœํ•œ ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•ด์„œ ํ…Œ์ŠคํŠธํ•  ๋•Œ ์ž๋ฐ”์˜ main ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด์„œ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜,

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ํ†ตํ•ด์„œ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•œ๋‹ค.

 

์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์€ ์ค€๋น„ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š”๋ฐ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ณ , ๋ฐ˜๋ณต ์‹คํ–‰ํ•˜๊ธฐ ์–ด๋ ต๊ณ  ์—ฌ๋Ÿฌ ํ…Œ์ŠคํŠธ๋ฅผ ํ•œ ๋ฒˆ์— ์‹คํ–‰ํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

์ž๋ฐ”๋Š” JUnit์ด๋ผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•ด์„œ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค.

 

 

ํšŒ์› ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌํ˜„์ฒด ํ…Œ์ŠคํŠธ

Test Class ์ƒ์„ฑ

 

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("result =" + (result == member));
        

    }
}

 

@Test : ๋ฉ”์„œ๋“œ๊ฐ€ ์ž˜ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธ ๊ฐ€๋Šฅ , ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์คŒ 

 

.get() : Optional ์—์„œ ๊ฐ’์„ ๊บผ๋‚ผ ๋•Œ ์‚ฌ์šฉ

 

์ €์žฅํ•œ member(= new member() ) ๋ž‘ DB ์—์„œ ๊บผ๋‚ธ member(=result) ๊ฐ€ ๋˜‘๊ฐ™์œผ๋ฉด ์ฐธ

 

 

 

save() ๋ฉ”์„œ๋“œ ์‹คํ–‰

 

์ฝ˜์†” ์ฐฝ์—์„œ ๊ฒ€์ฆ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๊ณ„์† ๋ณผ์ˆ˜๋Š” ์—†๊ธฐ์— 

Assertions ๊ธฐ๋Šฅ ์‚ฌ์šฉ 

 

 

1) junit.jupiter

Assertions.assertEquals(member, result);

2) assertj.core

Assertions.assertThat(member).isEqualTo(result);
import static org.assertj.core.api.Assertions.*;
assertThat(member).isEqualTo(result);

 

๊ฐ’์ด ์ผ์น˜ํ•  ๊ฒฝ์šฐ

 

์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์€ ์—†์ง€๋งŒ ์ดˆ๋ก๋ถˆ

 

 

Assertions.assertEquals(member, null);

 

Assertions.assertThat(member).isEqualTo(null);

๊ฐ’์ด ๋‹ค๋ฅผ ๊ฒฝ์šฐ

 

์˜ค๋ฅ˜ ๋ฐœ์ƒ

 

 

 

findByName ๋ฉ”์„œ๋“œ ํ…Œ์ŠคํŠธ 

@Test
public void findByName() {
    Member member1 = new Member();
    member1.setName("spring1");
    repository.save(member1);

    Member member2 = new Member();
    member2.setName("spring2");
    repository.save(member2);

    Member result = repository.findByName("spring1").get();

    assertThat(result).isEqualTo(member1);

์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ

 

 

์ผ์น˜ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ

Member result = repository.findByName("spring2").get();

assertThat(result).isEqualTo(member1);

 

 

findAll ๋ฉ”์„œ๋“œ ํ…Œ์ŠคํŠธ

@Test
public void findAll(){
    Member member1 = new Member();
    member1.setName("spring1");
    repository.save(member1);

    Member member2 = new Member();
    member2.setName("spring1");

    repository.save(member2);

    List<Member> result = repository.findAll();

    assertThat(result.size()).isEqualTo(2);
}

 

 

๊ฐ’์ด ๋‹ค๋ฅผ ๊ฒฝ์šฐ

assertThat(result.size()).isEqualTo(3);

 

 

 

 

ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค ์‹คํ–‰ 

ํ•œ๋ฒˆ์— ์—ฌ๋Ÿฌ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ DB์— ์ง์ „ ํ…Œ์ŠคํŠธ์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋‚จ์„ ์ˆ˜ ์žˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๋˜๋ฉด ๋‹ค์Œ ์ด์ „ ํ…Œ์ŠคํŠธ ๋•Œ๋ฌธ์— ๋‹ค์Œ ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค

๋ฐ์ดํ„ฐ๋ฅผ ํด๋ฆฌ์–ด ํ•ด์ค˜์•ผํ•จ

 

@AfterEach ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ ํ…Œ์ŠคํŠธ๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ ๋งˆ๋‹ค(๋ฉ”์„œ๋“œ ์‹คํ–‰์ด ๋๋‚  ๋•Œ ๋งˆ๋‹ค ) ์ด ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ DB์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•œ๋‹ค.

ํ…Œ์ŠคํŠธ๋Š” ๊ฐ๊ฐ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค. ํ…Œ์ŠคํŠธ ์ˆœ์„œ์— ์˜์กด๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ๊ฒƒ์€ ์ข‹์€ ํ…Œ์ŠคํŠธ๊ฐ€ ์•„๋‹ˆ๋‹ค.

 

 

 

MemoryMemberRepository ํด๋ž˜์Šค์— ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€ 
public void clearStore() {
    store.clear();
}

 

ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค์— ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€

@AfterEach
public void afterEach() {
    repository.clearStore();
}

๊ฐ ํ…Œ์ŠคํŠธ๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ๋ฅผ ํด๋ฆฌ์–ด

 

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Spring > Spring ์ž…๋ฌธ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์Šคํ”„๋ง ์ž…๋ฌธ - (11) ํšŒ์› ์„œ๋น„์Šค ํ…Œ์ŠคํŠธ  (0) 2023.01.20
์Šคํ”„๋ง ์ž…๋ฌธ - (10) ํšŒ์› ์„œ๋น„์Šค ๊ฐœ๋ฐœ  (0) 2023.01.20
์Šคํ”„๋ง ์ž…๋ฌธ - (8) ํšŒ์› ๊ด€๋ฆฌ ์˜ˆ์ œ  (0) 2023.01.15
์Šคํ”„๋ง ์ž…๋ฌธ - (7) API  (0) 2023.01.12
์Šคํ”„๋ง ์ž…๋ฌธ - (6) MVC์™€ ํ…œํ”Œ๋ฆฟ ์—”์ง„  (0) 2023.01.12
'Spring/Spring ์ž…๋ฌธ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ์Šคํ”„๋ง ์ž…๋ฌธ - (11) ํšŒ์› ์„œ๋น„์Šค ํ…Œ์ŠคํŠธ
  • ์Šคํ”„๋ง ์ž…๋ฌธ - (10) ํšŒ์› ์„œ๋น„์Šค ๊ฐœ๋ฐœ
  • ์Šคํ”„๋ง ์ž…๋ฌธ - (8) ํšŒ์› ๊ด€๋ฆฌ ์˜ˆ์ œ
  • ์Šคํ”„๋ง ์ž…๋ฌธ - (7) API
hello_u
hello_u
  • hello_u
    ๐Ÿ˜œ
    hello_u
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๐Ÿ˜œ (345)
      • Hardware (2)
        • BMC (2)
      • Spring (109)
        • Spring ์ž…๋ฌธ (20)
        • Spring ๊ธฐ๋ณธ (27)
        • Spring MVC (18)
        • Spring DB (22)
        • Spring JPA ๊ธฐ๋ณธ (16)
        • Spring JPA ํ™œ์šฉ (6)
      • Develop (27)
        • DB (8)
        • JAVA (4)
        • Web (2)
        • Python (7)
        • OSS (2)
        • Git (2)
        • API (2)
      • Algorithm (155)
        • CodeUp ๊ธฐ์ดˆ (44)
        • ํŒŒ์ด์ฌ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ (64)
        • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (4)
        • SWEA (30)
        • Softeer (10)
        • BOJ (2)
      • CS (9)
        • ์ปดํ“จํ„ฐ์ผ๋ฐ˜ (3)
        • ์šด์˜์ฒด์ œ (3)
        • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (0)
        • ์ •๋ณดํ†ต์‹  (1)
        • ์ž๋ฃŒ๊ตฌ์กฐ (1)
        • ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™ (1)
        • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด (0)
        • ์ตœ์‹  ๋””์ง€ํ„ธ, ์ผ๋ฐ˜์ƒ์‹ (0)
      • ์ž๊ฒฉ์ฆ (41)
        • ์ •๋ณด๋ณด์•ˆ๊ธฐ์‚ฌ (9)
        • ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (22)
        • ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 1๊ธ‰ (3)
        • SQLD (7)
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
hello_u
์Šคํ”„๋ง ์ž…๋ฌธ - (9) ํšŒ์› ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ž‘์„ฑ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”