REST Assured is an easy to use library for the JVM that allows you to test REST/HTTP based services. It has good support for Java, Groovy and Scala and in this blog post I want to share some small tips to make the Kotlin integration even smoother.
Kotlin is a pretty interesting language developed by JetBrains that will look familiar if you’re used Java, Groovy and Scala. Let’s pretend that we want to test the following resource written in Sinatra:
require 'json'
require 'sinatra'
get '/greeting' do
content_type :json
firstName = params['firstName']
lastName = params['lastName']
{ :greeting =>
{ :firstName => firstName,
:lastName => lastName }}.to_json
end
If we invoke this service with for example curl:
curl "http://localhost:8080?firstName=Johan&lastName=Haleby"
it’ll return the following JSON:
{
"greeting":{
"firstName":"Johan",
"lastName":"Haleby"
}
}
Writing a simple test case for this service in Kotlin is straight forward:
package se.haleby.kotlin
import com.jayway.restassured.RestAssured.given
import org.hamcrest.Matchers.equalTo
import org.junit.Test
class RestAssuredKotlingExampleTest {
Test fun kotlin_rest_assured_example() {
given().
param("firstName", "Johan").
param("lastName", "Haleby").
`when`().
get("/greeting").
then().
statusCode(200).
body("greeting.firstName", equalTo("Johan")).
body("greeting.lastName", equalTo("Haleby"))
}
}
However you may notice that we have to escape the when
function because when
is a reserved keyword in Kotlin. So what we’re going to do is to add an extension function called When
that we can use as an alias to avoid manual escaping. We can do this by for example defining a trait like this:
package se.haleby.kotlin
import com.jayway.restassured.specification.RequestSpecification
trait RestAssuredSupport {
fun RequestSpecification.When(): RequestSpecification {
return this.`when`()
}
}
Now that we’ve added the alias we import the trait and use it like this:
package se.haleby.kotlin
import com.jayway.restassured.RestAssured.given
import org.hamcrest.Matchers.equalTo
import se.haleby.kotlin.RestAssuredSupport
import org.junit.Test
class RestAssuredKotlingExampleTest : RestAssuredSupport {
Test fun kotlin_rest_assured_example() {
given().
param("firstName", "Johan").
param("lastName", "Haleby").
When().
get("/greeting").
then().
statusCode(200).
body("greeting.firstName", equalTo("Johan")).
body("greeting.lastName", equalTo("Haleby"))
}
}
Voila! Now we don’t need to escape when
anymore and the code looks nicer. Thanks to Jasper Blues for bringing this to attention.
9 thoughts on “REST Assured with Kotlin”
Hey,
Just to let you know traits keyword is redundant in this example. It is now interface
На этом сайте можно найти информацией о сериале “Однажды в сказке”, развитии событий и главных персонажах. https://odnazhdy-v-skazke-online.ru/ Здесь представлены подробные материалы о создании шоу, актерах и фактах из-за кулис.
This extensive resource serves as an comprehensive guide to the realm of modern video surveillance, offering valuable information for both professional CCTV installers and security-conscious companies seeking to strengthen their protection systems.
Video Surveillance Utilities
The site delivers a thorough analysis of online video surveillance systems, examining their benefits, drawbacks, and effective applications.
Здесь размещены последние новости России и мира .
Вы найдете важные новостные материалы на различные темы.
https://ecopies.rftimes.ru/
Следите за главных событий ежедневно .
Проверенная информация и оперативность в каждом материале .
On this website, you will find information about 1Win casino in Nigeria.
It includes various aspects, including the popular online game Aviator.
1win bonus
You can also explore betting options.
Take advantage of an exciting gaming experience!
На этом сайте у вас есть возможность приобрести онлайн мобильные номера различных операторов. Эти номера могут использоваться для регистрации аккаунтов в разных сервисах и приложениях.
В ассортименте представлены как постоянные, так и временные номера, что можно использовать чтобы принять сообщений. Это удобное решение для тех, кто не хочет использовать основной номер в интернете.
виртуальный номер
Процесс покупки очень удобный: выбираете подходящий номер, вносите оплату, и он сразу будет готов к использованию. Попробуйте услугу прямо сейчас!
Центр ментального здоровья — это пространство, где любой может найти поддержку и профессиональную консультацию.
Специалисты помогают различными проблемами, включая повышенную тревожность, усталость и депрессивные состояния.
https://dominickhicxv.frewwebs.com/33513626/marketing-no-further-a-mystery
В центре используются эффективные методы терапии, направленные на улучшение эмоционального баланса.
Здесь создана комфортная атмосфера для доверительного диалога. Цель центра — помочь каждого обратившегося на пути к душевному равновесию.
На этом сайте вы можете заказать подписчиков и реакции для Telegram. Здесь доступны активные аккаунты, которые помогут развитию вашего канала. Оперативная накрутка и гарантированный результат обеспечат успешное продвижение. Тарифы доступные, а оформление заказа прост. Запустите продвижение уже сейчас и нарастите активность в своем Telegram!
Накрутить подписчиков в Телеграмм канал бесплатно ботов
Can you be more specific about the content of your article? After reading it, I still have some doubts. Hope you can help me.