Book Image

Building Applications with Spring 5 and Kotlin

By : Miloš Vasić
Book Image

Building Applications with Spring 5 and Kotlin

By: Miloš Vasić

Overview of this book

Kotlin is being used widely by developers because of its light weight, built-in null safety, and functional and reactive programming aspects. Kotlin shares the same pragmatic, innovative and opinionated mindset as Spring, so they work well together. Spring when combined with Kotlin helps you to reach a new level of productivity. This combination has helped developers to create Functional Applications using both the tools together. This book will teach you how to take advantage of these developments and build robust, scalable and reactive applications with ease. In this book, you will begin with an introduction to Spring and its setup with Kotlin. You will then dive into assessing the design considerations of your application. Then you will learn to use Spring (with Spring Boot) along with Kotlin to build a robust backend in a microservice architecture with a REST based collaboration, and leverage Project Reactor in your application. You’ll then learn how to integrate Spring Data and Spring Cloud to manage configurations for database interaction and cloud deployment. You’ll also learn to use Spring Security to beef up security of your application before testing it with the JUnit framework and then deploying it on a cloud platform like AWS.
Table of Contents (12 chapters)

Writing our first test with Kotlin

In this section, we will start with a slow introduction to test writing by creating a couple of simple tests. Locate your src/test directory and, under the com.journaler package, create a new class called NoteTest:

package com.journaler 
 
import org.junit.Test 
 
class NoteTest { 
 
    @Test 
    fun testNoteInsert(){ 
    } 
 
} 

We just defined an empty test that, at this point, doesn't do anything. Despite this, we introduced some very important things. We used the @Test annotation that will tell the test framework which method will represent test implementation. We are not limited to only one test per test class, so let's add a couple more tests in our test class:

package com.journaler 
 
import org.junit.Test 
 
class NoteTest { 
    @Test 
    fun testNoteInsert(){ 
    } 
 
    @Test 
    fun testNoteUpdate(){ 
    } 
 
  ...