Skip to content

백엔드 코드 스타일 가이드

yeonLog edited this page Jul 6, 2022 · 2 revisions

final 선언


public Carts(final long customerId, final List<Cart> carts) {
    this.customerId = customerId;
    this.carts = carts;
}
  • 매개변수에는 final 선언을 사용합니다

public class SpringCartService implements CartService {
    public void add(final long customerId, final long productId) {
        Product product = productService.findById(productId);
        Cart cart = new Cart(null, customerId, product, DEFAULT_QUANTITY);

        Carts carts = cartRepository.findCartsByCustomerId(customerId);
        carts.addCart(cart);
        cartRepository.saveCarts(carts);
    }
}
  • 클래스 선언, 메서드 내부에서는 final 선언을 사용하지 않습니다.

테스트 코드

인수테스트

@Test 
void 장바구니_목록_조회() { 
    // given
    장바구니_아이템_추가되어_있음(USER, productId1); 
    장바구니_아이템_추가되어_있음(USER, productId2);

    // when
    ExtractableResponse<Response> response = 장바구니_아이템_목록_조회_요청(USER);

    // then
    장바구니_아이템_목록_응답됨(response);
    장바구니_아이템_목록_포함됨(response, productId1, productId2);
}
  • DisplayName 애너테이션을 사용하지 않아요
  • 테스트 메서드명은 한글로 작성해요
  • private 메서드명도 한글을 사용해요
  • @DisplayNameGeneration@SuppressWarnings을 활용해요
    • @DisplayNameGeneration(DisplayNameGenerator.ReplaceUnderscores.class): '_'를 ' '로 변환시켜 보여준다.
    • @SuppressWarnings("NonAsciiCharacters"): 메서드명, 변수명을 한글로 지정해도 warning을 무시한다.

인수테스트 외 테스트

@DisplayName("아이디로 지하철 노선을 조회할 수 있다") 
@Test
void findById() { 
    // given
    Line line = lineService.save(LINE_FIXTURE);

    // when
    Line found = lineService.findById(line.getId());

    // then
    assertThat(line).isEqualTo(found);
}
  • DisplayName 애너테이션을 사용해요
  • 테스트 메서드명, private 메서드명 모두 영어를 사용해요

Clone this wiki locally