코드 작성시 만들어서 사용하기는 하지만, 공통으로 있으면 좋을 만한~~~ 것들이 있다.
https://github.com/JetBrains/kotlin/blob/master/libraries/stdlib/src/kotlin/util/Preconditions.kt
GitHub - JetBrains/kotlin: The Kotlin Programming Language.
The Kotlin Programming Language. . Contribute to JetBrains/kotlin development by creating an account on GitHub.
github.com
Spring Assert를 간혹 사용하기는 했는데 코틀린도 포함되어 있으니 사용하는 것으로 한다.
Null Check 예제만 들어도 무난하지 싶다( 나머지야 보면 다 아는 것들.)
internal class PreconditionsTest : StringSpec() {
    private val log = KotlinLogging.logger {  }
    init {
        "NULL 을 넣어 IllegalStateException 예외를 내보자 " {
            val nullTxt: String? = null
            val e = shouldThrow<IllegalStateException> {
                val result = checkNotNull(nullTxt){"Null 이에요"}
                log.debug { result }
            }
            e.message shouldBe "Null 이에요"
            e shouldBe beInstanceOf<IllegalStateException>()
        }
        "NULL이 아닌 경우 정상 값 반환 " {
            val txt: String? = "TEST"
            val result = checkNotNull(txt){"Null 이에요"}
            result shouldBe "TEST"
        }
    }
}참고로 Test에서 결과에 대한 Type확인은 beInstanceOf 를 사용하면 된다.
그외 코드야 뭐..
Preconditions.kt 코드에서 굳이 뭐가 다를까 하는 함수도 있지만 넘어가자...ㅎㅎ
@kotlin.internal.InlineOnly
public inline fun <T : Any> requireNotNull(value: T?): T {
    contract {
        returns() implies (value != null)
    }
    return requireNotNull(value) { "Required value was null." }
}
@kotlin.internal.InlineOnly
public inline fun <T : Any> checkNotNull(value: T?): T {
    contract {
        returns() implies (value != null)
    }
    return checkNotNull(value) { "Required value was null." }
} 
									
								 
									
								 
									
								