DEV Community

kaede
kaede

Posted on • Updated on

Ktor でルーティングを増やしてテストする。

別のルーティングを作る

https://jp.ktor.work/quickstart/index.html#hello-world

ktor jp のクイックスタートを参考にする

Routing.kt に

    routing {
        get("/") {
            call.respondText("Hello from root")
        }
        get("/demo") {
            call.respondText("Hello from /demo ")
        }

    }
Enter fullscreen mode Exit fullscreen mode

/demo に Hello from /demo のテキストを当てる

Image description

/ へのアクセスで Hello from root

Image description

/demo へのアクセスで Hello from /demo

これらが表示された。

        val response = client.get("/")
        assertEquals(HttpStatusCode.OK, response.status)
        assertEquals("Hello from root", response.bodyAsText())
        val response2 = client.get("/demo")
        assertEquals(HttpStatusCode.OK, response2.status)
Enter fullscreen mode Exit fullscreen mode

/demo でも 200 で返ってきているかだけをテストする。

Image description

全て通った。
2 つめを /demodummy のような存在しないルーティングにすると

| expected:<200 OK> but was:<404 Not Found>

400 だよって落ちる。

実行結果が見にくい問題。

しかし、デフォルトの kotlin.test, io.ktor.server.testing
これらのテストだと、通ったときに左側に進行状況が表示されない。

本当は testRoot OK ってでてほしい。

これは別のテストライブラリを使うことで解決できるらしい。

しかし、追加は失敗したので素直に kotlin.test を使うことにする。

今後

https://qiita.com/fisherman08/items/3879341ffd5aea8d02b2#should-spec

kotlintest を導入して should でかけるようにする。

https://qiita.com/kawano_fumihiko/items/4253e63f0c136fce0aef

HTML を Selenide でテストする。

Top comments (0)