Ktor 에서 Application.kt の test を作成して実行する

4327 단어 kotlinktor

前提



Ktor の プロジェクトを web で作成して、IntelliJ で起動して
Chrome で動作が確認できている.

App のtestをする



https://ktor.io/docs/testing.html#overview

procject 生成後의 testApplication の中身 は空なので、
ktor 公式の docs の通りに実装する.

src/kotlin/com/exmaple/ApplicationTest.kt

ここに Application.kt のtestfァirを書く.

import io.ktor.http.*
import kotlin.test.*
import io.ktor.server.testing.*
import com.example.plugins.*
import io.ktor.client.request.*
import io.ktor.client.statement.*


  • kotlin 테스트
  • ktor 의 http
  • ktor 의 서버 의 테스트
  • ktor の 클라이언트 の 요청
  • ktor の 클라이언트 の 진술

  • これらの必要なライブラリを 수입

    class ApplicationTest {
        @Test
        fun testRoot() = testApplication {
            val response = client.get("/")
            assertEquals(HttpStatusCode.OK, response.status)
            assertEquals("Hello from Kotlin Ktor", response.bodyAsText())
        }
    }
    


    ファイル名でクラスを定義.
    と宣言
    testApplication を使って testRoot という関数の中身に書く.
    その後、client.get で Route ファイルと同じく/から取って
    HttpStatusCode が OK... 200 ?と
    の中身が True なことをtestしていると推測
    Response の body が 期待された테크키스트なのを確認

    expected:<200 OK> but was:<404 Not Found>
    Expected :200 OK
    Actual   :404 Not Found
    


    しかしこのまま実行してもうまくいかなかった.

    class ApplicationTest {
        @Test
        fun testRoot() = testApplication {
            application {
                configureRouting()
            }
    // ......
    


    라우팅이 び付けられていなかったので
    このように application の configure を結べつけた.



    これで無事, 最初의 시험이 통했다.

    まとめ



    Ktor でtestを書くためには
    http, 서버, 클라이언트 の ktor ライブラリを import し

    application の configureRouting を結びつけて
    /(으)로부터 응답 を取って
    StatusCode と 응답 の 상태
    리스폰스 바디 노트

    これらをCHECKする コードを書く.

    좋은 웹페이지 즐겨찾기