Spring/Spring ๊ธฐ๋ณธ

[์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ - ๊ธฐ๋ณธํŽธ] - 5. ํšŒ์› ๋„๋ฉ”์ธ ์‹คํ–‰๊ณผ ํ…Œ์ŠคํŠธ

hello_u 2023. 1. 31. 15:34

 

ํšŒ์› ๋„๋ฉ”์ธ ์‹คํ–‰๊ณผ ํ…Œ์ŠคํŠธ

 

ํšŒ์› ๋„๋ฉ”์ธ - ํšŒ์› ๊ฐ€์ž… main

 

๋”๋ณด๊ธฐ
package hello2.demo;

import hello2.demo.member.Grade;
import hello2.demo.member.Member;
import hello2.demo.member.MemberService;
import hello2.demo.member.MemberServiceImpl;

public class MemberApp {
    public static void main(String[] args) {
        MemberService memberService = new MemberServiceImpl();
        Member member = new Member(1L, "memberA", Grade.VIP);
        memberService.join(member);

        Member findMember = memberService.findMember(1L);
        System.out.println("new member = " + member.getName());
        System.out.println("findMember = " + findMember.getName());
    }
}

 

์ˆœ์ˆ˜ํ•œ ์ž๋ฐ” ์ฝ”๋“œ๋กœ๋งŒ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ 

 

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์œผ๋กœ ์ด๋ ‡๊ฒŒ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์€ ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ๋‹ค.

(์ถœ๋ ฅ๋œ ๊ฒฐ๊ณผ๋ฅผ ์ฝ˜์†”์—์„œ ํ™•์ธํ•ด์•ผํ•จ)

 

--> JUnit ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์ž.

 

ํšŒ์› ๋„๋ฉ”์ธ - ํšŒ์› ๊ฐ€์ž… ํ…Œ์ŠคํŠธ

 

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ ์‹œ ํŒ

@Test
void ๋ฉ”์„œ๋“œ() {
    //given  ์ด๋Ÿฐ๊ฒŒ ์ฃผ์–ด์กŒ์„ ๋•Œ,
    
    //when   ์ด๋ ‡๊ฒŒ ํ–ˆ์„ ๋•Œ,
    
    //then   ์ด๋ ‡๊ฒŒ ๋œ๋‹ค.
}

 

MemberServiceTest

๋”๋ณด๊ธฐ
package hello2.demo.member;

import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;

public class MemberServiceTest {

    MemberService memberService = new MemberServiceImpl();

    @Test
    void join() {
        //given  ์ด๋Ÿฐ๊ฒŒ ์ฃผ์–ด์กŒ์„ ๋•Œ,
        Member member = new Member(1L,"memberA",Grade.VIP);

        //when   ์ด๋ ‡๊ฒŒ ํ–ˆ์„ ๋•Œ,
        memberService.join(member);
        Member findMember = memberService.findMember(1L);

        //then   ์ด๋ ‡๊ฒŒ ๋œ๋‹ค.
        Assertions.assertThat(member).isEqualTo(findMember);
    }
}

 

 

Assertions

 

 

assertThat(actual).isEqualTo(expected);

isEqualTo : ๊ฐ์ฒด๊ฐ€ ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ๋น„๊ตํ•œ๋‹ค.

 

 

๊ฐ’ ์ผ์น˜ - ์„ฑ๊ณต

 

 

ํšŒ์› ๋„๋ฉ”์ธ ์„ค๊ณ„์˜ ๋ฌธ์ œ์ 

์ด ์ฝ”๋“œ์˜ ์„ค๊ณ„์ƒ ๋ฌธ์ œ์ ์€ ๋ฌด์—‡์ผ๊นŒ์š”?
๋‹ค๋ฅธ ์ €์žฅ์†Œ๋กœ ๋ณ€๊ฒฝํ•  ๋•Œ OCP ์›์น™์„ ์ž˜ ์ค€์ˆ˜ํ• ๊นŒ์š”?
DIP
๋ฅผ ์ž˜ ์ง€ํ‚ค๊ณ  ์žˆ์„๊นŒ์š”?

 

public class MemberServiceImpl implements MemberService {

    private final MemberRepository memberRepository = new MemoryMemberRepository();

์˜์กด๊ด€๊ณ„๊ฐ€ ์ธํ„ฐํŽ˜์ด์Šค(MemberRepository) ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ

๊ตฌํ˜„(MemoryMemberRepository)๊นŒ์ง€ ๋ชจ๋‘ ์˜์กดํ•˜๋Š” ๋ฌธ์ œ์ ์ด ์žˆ์Œ (DIP ์œ„๋ฐ˜)

 

--> ์ด ๋ฌธ์ œ์ ์„ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ•ด๊ฒฐํ•ด ์ค„ ๊ฒƒ์ž„ ( ์•„๋งˆ๋„..? ) 

 

 

 

์ถœ์ฒ˜ : https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard

 

์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ - ๊ธฐ๋ณธํŽธ - ์ธํ”„๋Ÿฐ | ๊ฐ•์˜

์Šคํ”„๋ง ์ž…๋ฌธ์ž๊ฐ€ ์˜ˆ์ œ๋ฅผ ๋งŒ๋“ค์–ด๊ฐ€๋ฉด์„œ ์Šคํ”„๋ง์˜ ํ•ต์‹ฌ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๊ณ , ์Šคํ”„๋ง ๊ธฐ๋ณธ๊ธฐ๋ฅผ ํ™•์‹คํžˆ ๋‹ค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค., - ๊ฐ•์˜ ์†Œ๊ฐœ | ์ธํ”„๋Ÿฐ...

www.inflearn.com