TIL/김영한의 스프링 핵심 원리
스프링 핵심 원리 이해1 - 예제 만들기
minOE
2024. 1. 17. 23:44
728x90
김영한 강사님 커리큘럼에 따라서 비지니스 요구사항과 설계에 따라 최소한의 스프링 Dependency를 사용하여 코드를 짜보고 있습니다.
테스트 코드를 작성하던 중
package com.example.core.member;
import org.junit.jupiter.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.assertEquals(member.getName(),findMember.getName());
}
}
위 코드와
package com.example.core.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);
}
}
위 코드 테스트 코드 모두 잘 동작하여 차이점을 알고 싶어 GPT 에게 물어보았습니다.
`Assertions.assertEquals(member.getName(), findMember.getName())`와 `Assertions.assertThat(member).isEqualTo(findMember)`는 각각 JUnit 5의 `Assertions` 클래스와 AssertJ 라이브러리의 `Assertions.assertThat()`을 사용하여 작성된 테스트 코드입니다. 이 두 코드의 주요 차이점은 다음과 같습니다:
1. 표현력과 가독성: - JUnit 5의 `Assertions` 클래스를 사용한 코드는 값의 동등성을 비교하는 메서드 `assertEquals`를 사용합니다. 이는 비교 연산이 좀 더 명시적으로 드러나게 하는 장점이 있습니다. 그러나 객체의 속성이 많거나 복잡한 구조를 가지면 비교가 불편해질 수 있습니다. - AssertJ의 `Assertions.assertThat()`를 사용한 코드는 메서드 체이닝을 통해 좀 더 표현력 있고 가독성이 높은 테스트 코드를 작성할 수 있습니다. `isEqualTo` 메서드는 객체의 동등성을 비교하는데 사용되며, 다양한 매처를 활용하여 다양한 조건으로 객체를 검증할 수 있습니다.
2. 추가적인 매처 활용: - JUnit 5의 `assertEquals` 메서드는 기본적인 동등성 비교만 가능하며, 더 복잡한 조건을 표현하기 어렵습니다. 만약 객체의 여러 속성 중 하나만 비교하거나, 커스텀 매처를 사용하려면 추가적인 코드가 필요합니다. - AssertJ의 `isEqualTo` 메서드를 사용하면 다양한 매처를 활용하여 더 유연하게 테스트할 수 있습니다. 예를 들어 `isEqualTo`, `isNotEqualTo`, `hasFieldOrPropertyWithValue` 등 다양한 메서드를 사용하여 테스트 조건을 정의할 수 있습니다.
종합적으로, AssertJ를 사용한 코드는 표현력이 높고 가독성이 좋으며, 다양한 매처를 활용하여 더 유연하게 테스트할 수 있습니다. 하지만 프로젝트의 테스트 스타일이나 팀의 규칙에 따라 JUnit 5의 `assertEquals`를 사용할 수도 있습니다.
이 외에도
https://velog.io/@msung99/Git-Commit-Message-Convension
[Git] Commit Message Convension (협업을 위한 git 커밋컨벤션)
이번 포스팅에서는 Git 의 커밋 메시지 컨벤션에 대해 알아보겠습니다. 각 회사마다 각자의 git flow 전략을 가지고 브랜치를 관리하듯이, 그에 따라가며 자연스래 commit 에 관한 규칙도 정말 중요
velog.io
https://limkydev.tistory.com/50
[Java] enum 이란?
Enum class란? 우리가 흔히 상수를 정의할 때 final static string 과 같은 방식으로 상수를 정의를합니다. 하지만 이렇게 상수를 정의해서 코딩하는 경우 다양한 문제가 발생됩니다. 따라서 이러한 문제
limkydev.tistory.com
해당 블로그를 참고하였습니다.
728x90