Spring MVC : Testing Controller Menggunakan Spring Test

Spring MVC Testing

Testing merupakan suatu kegiatan yang krusial dalam sebuah pengembangan perangkat lunak. Dengannya kita bisa memastikan bahwa perangkat lunak bekerja sebagaimana mestinya.
Salah satu jenis testing adalah unit testing. Artikel ini akan berbicara mengenai pengenalan unit testing pada Controller pada aplikasi web java berbasis Spring MVC.

Persiapan

Hal pertama yang kita lakukan sebelum mulai melakukan pengembangan adalah menyiapkan dependensi library. Library yang dibutuhakn untuk pengujian kali ini adalah
1. spring-test
2. spring-test-mvc

Silahkan download terlebih dahulu. Bisa mampir di website resmi Spring atau coba cari di google.

Untuk yang menggunakan Maven maka berikut adalah pom.xml-nya

Disitu saya menambahkan sebuah repository karena untuk library spring-test-mvc belum tersedia pada repository Maven.

Kode yang Akan diuji

Kita akan melakukan pengujian maka tentunya ada sesuatu yang harus diuji. Kalau tidak ada sesuatu yang diuji maka pengujian menjadi hal yang absurd.

Berikut adalah kode dari Controller yang akan kita uji

Kode diatas sangat sederhana. Kedua method mengembalikan sebuah String yang merupakan nama dari view yang akan ditamplikan pada browser. Untuk pengujiannya kita akan memastikan bahwa kedua method tersebut ketika menerima request akan memberikan kode respon 200 dan juga melakukan verifikasi terhadap nama viewa yang dihasilkan.

Menulis Pengujian Unit

Sebelum menulis pengujian kita persiapkan terlebih dahulu konfigurasi-nya. Konfigurasi bisa berupa file xml atau berupa kelas Java. Saya lebih suka menggunakan kelas Java.
Berikut adalah kelas konfigurasi yang digunakan

Sekarang kita siap menulis kode untuk pengujian Controller. Komponen utama dari pengujian Controller pada Spring MVC adalah class MockMvc. Kita perlu membuatnya terlebih dahulu untuk melakukan pengujian. Ada 4 cara yang bisa kita lakukan untuk membuat kelas MockMvc. Berikut adalah tulisan dari Petri Kainulainen pada blognya

The heart of the spring-test-mvc is a class called MockMvc that can be used to write tests for any application implemented by using Spring MVC. Our goal is to create a new MockMvc object by using the implementations of the MockMvcBuilder interface. The MockMvcBuilders class has four static methods which we can use to obtain an implementation of the MockMvcBuilder interface. These methods are described in following:

  • ContextMockMvcBuilder annotationConfigSetup(Class… configClasses) method must be used when we are using Java configuration for configuring the application context of our application.
  • ContextMockMvcBuilder xmlConfigSetup(String… configLocations) must be used when the application context of our application is configured by using XML configuration files.
  • StandaloneMockMvcBuilder standaloneSetup(Object… controllers) must be used when we want to configure the tested controller and the required MVC components manually.
  • InitializedContextMockMvcBuilder webApplicationContextSetup(WebApplicationContext context) must be used when we have already created a fully initialized WebApplicationContext object

.

Kita gunakan cara ke-empat. Berikut adalah kode pengujian-nya

Kita lakukan 3 pengujian pada Controller yang kita miliki. Pengujian pertama adalah untuk memastikan bahwa ketika kita mengakses “namadomain/” maka akan menghasilkan kode respon 200 yang artinya OK dan juga akan menampilkan view dengan nama index. Begitu juga dengan pengujian yang kedua tidak jauh berbeda ketika mengakses “namadomain/halo”.

Pada pengujian ketiga kita memastikan bahwa akses terhadap “namadomain/morning” akan menghasilan kode 404 yang artinya “page not found” bahwa halaman tidak tersedia.

Ketika dijalankan maka seharunya ketiga pengujian akan lolos.

result

Kesimpulan

Spring Test MVC merupakan library yang membantu kita untuk melakukan pengujian pada Controller
Saya harap penjelasan saya diatas cukup jelas dan mudah dimengerti.

Proyek contoh bisa didownload Github

Semoga bermanfaat 🙂

Facebook Comments
 

Agung Setiawan

Agung Setiawan adalah software engineer di BukaLapak.com, penulis sekaligus pecinta sastra, dan pembaca buku

 
Halo, perkenalkan saya Agung Setiawan.
Saya Software Engineer di BukaLapak.
Simak pemikian saya soal dunia Software Engineering via Twitter di @agungsetiawanmu dan facebook
Blog ini saya update seminggu sekali jadi sering-sering saja mampir
Mau belajar Vim bareng saya?
Belajar ngoding dari nol menggunakan PHP

Leave a Reply

Your email address will not be published. Required fields are marked *