Anders Sveen
12/14/2023, 8:30 AMAleksei Tirman [JB]
12/14/2023, 3:03 PMAleksei Tirman [JB]
12/14/2023, 3:16 PMContentNegotiation
plugin installed. Here is an example:
class KtorTest {
companion object {
private lateinit var server: TestApplicationEngine
private val client: HttpClient get() = HttpClient(TestHttpClientEngine.create { app = server }) {
install(ContentNegotiation) {
json()
}
}
@BeforeClass
@JvmStatic
fun setup() {
server = TestApplicationEngine(createTestEnvironment {
module {
routing {
get {
call.respondText(contentType = ContentType.Application.Json) { """{"x": 42}""" }
}
}
}
})
server.start(wait = false)
}
@AfterClass
@JvmStatic
fun tearDown() {
server.stop()
}
}
@Serializable
data class Response(val x: Int)
@Test
fun test() = testSuspend {
assertEquals(42, client.get("/").body<Response>().x)
}
}
Anders Sveen
12/15/2023, 8:10 AM