SpringBootメンバー管理例#4


出典:私たちはあなたのスピーチと理解を投稿に書きます.
スプリング入門レッスン
メンバー管理の作成
フォルダの作成
  • domain
  • repository
  • service
  • domain
  • Member :
    単純メンバーid、name、getter、setterのみ
  • を持つ
    repository
  • MemberRepository :
    インタフェースファイルで実現されるので抽象的な方法で構成されています
    save()、findyById()、findByName()およびfindAll()からなる
    抽象クラスとインタフェースの違いは、抽象的な方法を持っていることです.
    インタフェースは抽象的な方法のみで構成され,何の実現もない.
    抽象クラスは一般的な方法もあれば,抽象的な方法もあるクラスである.
  • MemoryMemberRepository:MemberRepository継承クラス
    各機能の実現

    Mapを使用してオブジェクトを保存する
    Optionalを使用してnull
  • を管理する
    service
  • MBERService:実際のビジネスロジックを実現するクラス
    会員登録(重複会員検証)、会員照会の機能構成
  • 会員管理テスト
    テストケース
  • で開発された機能を実行し、mainメソッドで実行できます.
    準備に時間がかかり、繰り返しが難しく、「複数のテストを一度に完了」
    欠点は実施が困難であり、これらの問題を解決するために
  • を用いることである.
  • テストファイルは、同一フォルダの同一ファイル名の後にTestを加えて生成された
  • である.
  • ctrl+shift+tは、
  • を容易に生成することができる.
  • 各機能前@Test
  • 分記入が容易
  • MemoryMemberRepositoryTest

  • @AfterEachを使用すると、各メソッドはテスト後に実行され、テストが終了するたびにclearStore()を使用してリポジトリを空にします.

  • save()テスト:
    Attentions.assertThat().isEqualsTo(b)の使用
    a、bが同じ値であることを確認する
    Attentionsではalt+enterを使用して静的インポートできます
  • MemberServiceTest

  • 	MemoryMemberRepository memoryMemberRepository = 
        new MemoryMemberRepository;
        //이렇게 생성하면 그냥 MemberService와는 다른 객체가 되어버린다
        
        //그래서 MemberService를 
        //외부에서 입력받도록 바꿈
        public MemberService(MemberRepository memberRepository) {
            this.memberRepository = memberRepository;
        }
        //이후에
            
            //테스트하기전마다 실행되는 코드
        @BeforeEach
        public void beforeEach(){
            //DI
            memoryMemberRepository = new MemoryMemberRepository(); //생성후
            //memberService 에 넣어준다
            //이러면 같은 repository를 외부에서 넣어주기때문에 같은걸 사용가능
            memberService = new MemberService(memoryMemberRepository);
        }
  • 重複メンバーテスト:
  •  // (터질 예외 , 로직)
    Assertions.assertThrows((IllegalStateException.class, () -> memberService.join(member2));
    assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다");
    //이런식으로 예외 문구를 검증할 수 있다