본문 바로가기
Blog/TIL

2025-01-10 (금)

by 코젼 2025. 1. 10.
728x90
반응형

스코프 함수

  • .run: 객체에서 특정 작업을 실행하고 마지막 표현식의 결과 반환.
    • 주로 객체에 대해 임시로 스코프를 확장하여 작업을 수행하거나 체이닝을 간결하게 하기 위해서 사용됨.
    • ?. 연산자로 null-safe하게 작업을 수행.
      inline fun <T, R> T.run(block: T.() -> R): R
  • T: 호출 객체의 타입.
  • block: 호출 객체를 수신으로 받아 작업을 수행할 람다.
  • R: 람다의 결과 타입으로, .run 함수가 반환됨.
함수 this로 접근 it로 접근 반환 값 주 용도
run O X 람다의 결과 객체 설정 및 결과 반환
let X O 람다의 결과 결과 반환 및 체이닝
also O X 호출 객체 추가 작업 수행 및 체이닝
apply O X 호출 객체 객체 구성 및 반환
with O X 람다의 결과 객체 작업에 집중

다수 테스트 객체 생성

val emails = List(3) { index -> base.email.replace("@", "${index + 1}@") }
val expectedResponse = emails.mapIndexed { index, email ->  
    UserDTO.Response(email, "${base.name}${index + 1}")  
}

JPQL mocking

fun <T : Any> update(  
    init: CustomJpql.() -> JpqlQueryable<UpdateQuery<T>>,  
): Int

every {  
    projectAdPlatformRepository.update(  
        any<CustomJpql.() -> JpqlQueryable<UpdateQuery<ProjectAdPlatform>>>()  
    )  
} returns 1
728x90
반응형

'Blog > TIL' 카테고리의 다른 글

2025-01-14 (화)  (0) 2025.01.14
2025-01-13 (월)  (1) 2025.01.13
2025-01-09 (목)  (0) 2025.01.09
2025-01-08 (수)  (0) 2025.01.08
2025-01-07 (화)  (0) 2025.01.07

댓글