iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 6
2
Modern Web

最好用的非同步網頁框架!開始用 Ktor 寫 Kotlin Server系列 第 6

[Day 6] Ktor 的自動測試

如果我們現在試著在專案執行 gradle build

gradle build

我們會在下面看到失敗的訊息:

test fail

這是怎麼一回事呢?這是因為我們的自動測試沒有通過啦!

什麼是自動測試

自動測試簡單的說,就是為了解決程式撰寫完之後,人為測試總是可能有遺漏或者錯誤的地方這個問題,我們可以寫一段程式,

這樣一來,我們就可以隨時測試我們的程式。不管是在每次即將上線時,或者我們喜歡的任何時候,只要跑一下測試程式,我們就可以相當完整的測試一次程式,減少錯誤出現的機率。

之前我們改了 / 會顯示的文字,但是沒有調整自動測試的內容,那當然不會通過囉!

調整自動測試

我們打開 test/ApplicationTest 看看裡面的內容:

class ApplicationTest {
    @Test
    fun testRoot() {
        withTestApplication({ module(testing = true) }) {
            handleRequest(HttpMethod.Get, "/").apply {
                assertEquals(HttpStatusCode.OK, response.status())
                assertEquals("HELLO WORLD!", response.content)
            }
        }
    }
}

可以看到,這是檢查 / 會不會有「HELLO WORLD!」的自動測試。

我們稍微調整一下:

class ApplicationTest {
    @Test
    fun testRoot() {
        withTestApplication({ module(testing = true) }) {
            handleRequest(HttpMethod.Get, "/").apply {
                assertEquals(HttpStatusCode.OK, response.status())
                assertEquals("最好用的非同步網頁框架!開始用 Ktor 寫 Kotlin Server", response.content)
            }
        }
    }
}

然後,我們重新跑一次 gradle build,就會成功囉!

test success


上一篇
[Day 5] 修改程式碼?先設定 coding style!
下一篇
[Day 7] 談 Ktor 紀錄 log 的方式
系列文
最好用的非同步網頁框架!開始用 Ktor 寫 Kotlin Server30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言