Kotest Ktor 매처(Ktor Matchers)

Ktor 매처에 대해서 설명한다.

코드는 별도의 저장소와 다른 그룹인 io.kotest.extensions에 보관된다.

Full Dependency

implementation("io.kotest.extensions:kotest-assertions-ktor:version")
implementation "io.kotest.extensions:kotest-assertions-ktor:version"

Ktor에 대한 매처는 kotest-assertions-ktor 모듈에서 제공된다.

Test Application Response

ktor 서버 테스트킷을 통해 테스트할 때 다음 매처가 사용된다.

매처 설명
TestApplicationResponse.shouldHaveStatus(HttpStatusCode) 응답에 주어진 http 상태 코드가 있는지 확인한다.
TestApplicationResponse.shouldHaveContent(content) 응답에 주어진 본문이 있는지 확인한다.
TestApplicationResponse.shouldHaveContentType(ContentType) 응답이 주어진 콘텐츠 유형을 가지고 있는지 확인한다.
TestApplicationResponse.shouldHaveHeader(name, value) 응답에 주어진 name=value 헤더가 포함되어 있는지 확인한다.
TestApplicationResponse.shouldHaveCookie(name, value) 응답에 주어진 쿠키가 포함되어 있는지 확인한다.
TestApplicationResponse.shouldHaveCacheControl(value) 응답에 주어진 캐시 제어 헤더가 포함되어 있는지 확인한다.
TestApplicationResponse.shouldHaveETag(value) 응답에 주어진 etag 헤더가 포함되어 있는지 확인한다.
TestApplicationResponse.shouldHaveContentEncoding(value) 응답에 지정된 콘텐츠 인코딩 헤더가 포함되어 있는지 확인한다.

HttpResponse

ktor http 클라이언트의 응답에 대해 다음 매처를 사용할 수 있다.

매처 설명
HttpResponse.shouldHaveStatus(HttpStatusCode) 응답에 주어진 http 상태 코드가 있는지 확인한다.
HttpResponse.shouldHaveContentType(ContentType) 응답이 주어진 콘텐츠 유형을 가지고 있는지 확인한다.
HttpResponse.shouldHaveHeader(name, value) 응답에 주어진 name=value 헤더가 포함되어 있는지 확인한다.
HttpResponse.shouldHaveVersion(HttpProtocolVersion) 응답이 주어진 프로토콜 버전을 사용했음을 확인한다.
HttpResponse.shouldHaveCacheControl(value) 응답에 주어진 캐시 제어 헤더가 포함되어 있는지 확인한다.
HttpResponse.shouldHaveETag(value) 응답에 주어진 etag 헤더가 포함되어 있는지 확인한다.
HttpResponse.shouldHaveContentEncoding(value) 응답에 지정된 콘텐츠 인코딩 헤더가 포함되어 있는지 확인한다.

참조




최종 수정 : 2024-04-21