我有一个简单的 hello world Ktor 应用程序:
fun Application.testMe() {
intercept(ApplicationCallPipeline.Call) {
if (call.request.uri == "/")
call.respondText("Hello")
}
}
使用 JUnit 测试类,我可以为它编写测试,如其文档中所述;如下:
class ApplicationTest {
@Test fun testRequest() = withTestApplication(Application::testMe) {
with(handleRequest(HttpMethod.Get, "/")) {
assertEquals(HttpStatusCode.OK, response.status())
assertEquals("Hello", response.content)
}
with(handleRequest(HttpMethod.Get, "/index.html")) {
assertFalse(requestHandled)
}
}
}
但是,我想在 Spek 或 KotlinTest 中进行单元测试,无需 JUnit 的帮助,类似于我在 ScalaTest/Play 中进行的方式;以更具声明性的方式:
- 在测试期间向路由(即
/
)发送 FakeRequest。 - 获取页面内容,并检查字符串“hello”。
问题是我可以在 KotlinTest 或 Spek 中以更具声明性的方式编写上述测试吗?