Kotest 컴파일러 매처(Compiler Matchers)

컴파일러 매처에 대해서 설명한다.

kotest-assertions-compiler 확장은 지정된 kotlin 코드 조각이 컴파일되는지 여부를 확인하는 매처를 제공한다. 이 확장은 kotlin-compile-testing에 대한 래퍼이며 다음과 같은 매처를 제공한다.

  • String.shouldCompile()
  • String.shouldNotCompile()
  • File.shouldCompile()
  • File.shouldNotCompile()

컴파일 매처를 추가하려면 프로젝트에 다음 종속성을 추가한다.

testImplementation("io.kotest.extensions:kotest-assertions-compiler:${version}")

작성법:

class CompilationTest: StringSpec() {
    init {
        "shouldCompile test" {
            val codeSnippet = """ val aString: String = "A valid assignment" """.trimMargin()

            codeSnippet.shouldCompile()
            File("SourceFile.kt").shouldCompile()
        }

        "shouldNotCompile test" {
            val codeSnippet = """ val aInteger: Int = "A invalid assignment" """.trimMargin()

            codeSnippet.shouldNotCompile()
            File("SourceFile.kt").shouldNotCompile()
        }
    }
}

코드 조각 컴파일을 검사하는 동안 호출 프로세스의 클래스 경로가 상속되므로 호출 프로세스에서 사용 가능한 모든 종속성은 코드 조각을 컴파일하는 동안에도 사용할 수 있다.

지정된 Kotlin 코드가 컴파일되는지 여부를 확인하는 매처

매처 설명
string.shouldCompile() 문자열이 유효한 Kotlin 코드인지 확인한다.
file.shouldCompile() 파일에 유효한 Kotlin 코드가 포함되어 있는지 확인한다.

참조




최종 수정 : 2024-04-14