AI 코딩: 자연어 대신 테스트로 대화하라
박
박상철
import io.kotest.core.spec.style.BehaviorSpec
import io.kotest.matchers.shouldBe
import io.kotest.matchers.nulls.shouldBeNull
class 문자열유틸리티_테스트 : BehaviorSpec({
Given("문자열의 첫 글자를 대문자로 바꾸는 함수가 있을 때") {
When("정상적인 문자열이 주어지면") {
val input = "hello world"
val result = input.capitalizeFirstLetter(input)
Then("첫 글자가 대문자로 변환되어야 한다") {
result shouldBe "Hello world"
}
}
When("빈 문자열이 주어지면") {
val input = ""
val result = input.capitalizeFirstLetter(input)
Then("그대로 빈 문자열을 반환해야 한다") {
result shouldBe ""
}
}
When("null이 주어지면") {
val input: String? = null
val result = input.capitalizeFirstLetter(input)
Then("null을 반환해야 한다") {
result.shouldBeNull()
}
}
}
})fun String?.capitalizeFirstLetter(): String? {
if (this.isNullOrEmpty()) return this
return this[0].uppercaseChar() + this.substring(1)
}