Kotest Ktor 확장

Ktor 확장에 대해서 설명한다.

kotest-assertions-ktor 모듈은 Ktor 애플리케이션에 대한 응답 매처를 제공한다. 서버 사이드 테스트 지원을 사용하는 경우 TestApplicationResponse에 대한 매처와 ktor HTTP 클라이언트를 사용하는 경우 HttpResponse에 대한 매처가 모두 있다.

Ktor 매처를 추가하려면 프로젝트에 다음 종속성을 추가해야 한다.

io.kotest.extensions:kotest-assertions-ktor:${version}

서버 사이드 테스트 지원과 함께 매처를 사용하는 예제이다:

withTestApplication({ module(testing = true) }) {
   handleRequest(HttpMethod.Get, "/").apply {
      response shouldHaveStatus HttpStatusCode.OK
      response shouldNotHaveContent "failure"
      response.shouldHaveHeader(name = "Authorization", value = "Bearer")
      response.shouldNotHaveCookie(name = "Set-Cookie", cookieValue = "id=1234")
   }
}

그리고 클라이언트 지원 사용 예제이다:

val client = HttpClient(CIO)
val response = client.post("http://mydomain.com/foo")
response.shouldHaveStatus(HttpStatusCode.OK)
response.shouldHaveHeader(name = "Authorization", value = "Bearer")

참조




최종 수정 : 2024-04-21