[SpringBoot] 3.2_ํšŒ์› ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ž‘์„ฑ
2025. 2. 25. 16:52

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

 

 

* ํšŒ์› ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌํ˜„์ฒด ํ…Œ์ŠคํŠธ (src/test/java ํ•˜์œ„ ํด๋”์— ์ƒ์„ฑ)

 

package hello.hello_spring.repository;

import hello.hello_spring.domain.Member;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;

import java.util.List;
import java.util.Optional;

import static org.assertj.core.api.Assertions.*;

public class MemoryMemberRepositoryTest {

    MemoryMemberRepository repository = new MemoryMemberRepository();

    // ์ „์ฒด ํ…Œ์ŠคํŠธ ์‹คํ–‰์‹œ ๊ฐ ํ…Œ์ŠคํŠธ ์•ˆ์— ๋ณ€์ˆ˜๋ช… ์ค‘๋ณต์œผ๋กœ ์ธํ•ด ์˜ค๋ฅ˜ ๋‚  ์ˆ˜ ์žˆ์Œ.
    // ๋”ฐ๋ผ์„œ, ํ•˜๋‚˜์˜ ํ…Œ์ŠคํŠธ ๋๋‚  ๋•Œ๋งˆ๋‹ค ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์ง€์›Œ์ฃผ๋Š” ๋ฉ”์„œ๋“œ ํ˜ธ์ถœํ•ด์•ผํ•จ.
    @AfterEach
    public void afterEach() {
        repository.clearStore();
    }


    @Test
    public void save() {
        Member member = new Member();
        member.setName("kim");

        repository.save(member);

        Member result = repository.findById(member.getId()).get();//=> .get()์„ ๋ถ™์—ฌ์ฃผ๋ฉด Member์— Optional ์•ˆ๊ฐ์‹ธ๋„ ๋จ.

        // Test์‹œ JUnit ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฉ”์„œ๋“œ
        // 1. Assertions.assertEquals(์‹ค์ œ๊ฐ’, ๊ธฐ๋Œ€ํ•œ๊ฐ’)
        // Assertions.assertEquals(member, null); //ํ…Œ์ŠคํŠธ ์‹คํŒจ
        // Assertions.assertEquals(member, result);
        
        // 2. Assertions.assertThat(์‹ค์ œ๊ฐ’).isEqualTo(๊ธฐ๋Œ€ํ•œ๊ฐ’)
        // => ์š”์ฆ˜์€ ์ด๊ฑธ ๋” ๋งŽ์ด ์”€.
        // Assertions์—์„œ alt+Enter ํ•ด์„œ import static org.assertj.core.api.Assertions.*; ์ถ”๊ฐ€ํ•˜๋ฉด Assertions ์ƒ๋žต๊ฐ€๋Šฅ
        assertThat(member).isEqualTo(result);
        
    }

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

        Member member2 = new Member(); //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);
    }


}