DEV Community

kaede
kaede

Posted on • Edited 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)