Unit Testing – Bagian III: Menyingkap yang tersembunyi
Sebelumnya, saya ingin sedikit merangkum apa yang telah kita bahas pada artikel Unit Testing - Bagian II. Kita sudah tau bagaimana cara membuat test project, lalu test class, dan test method. Kita juga sudah paham bagaimana mengeksekusi setiap test method, dan melakukan verifikasi di dalam masing-masing test method tersebut. Termasuk bagaimana melakukan verifikasi atas ekspektasi terhadap sebuah Exception. Yang tidak kalah pentingnya, kita pun sudah mengerti bagaimana cara melihat test outcome hingga ke code coverage nya. Dengan begitu, sudah ada sedikit pencerahan tentang gimana sih bentuknya unit testing itu. Mungkin sebelumnya ada yang bertanya-tanya seperti apa bentuknya unit testing itu. Sekarang.. setidaknya sudah sedikit terjawab "oo gitu toh yang namanya unit testing". Masih lupa-lupa ingat? Boleh dibaca lagi di sini.
Oia, please keep in mind bahwa pembahasan kita hingga tulisan ini cuman for the sake of getting the idea apa sih unit testing itu, kayak gimana sih bentuknya, implementasinya seperti apa sih (dengan menggunakan teknologi .NET). Belum sampai gimana cara menulis test dengan baik dan benar. Bahkan unit testing itu sendiri memiliki patterns yang sudah well acknowledged. Itu nanti ya, di tulisan-tulisan selanjutnya :) Dan contoh-contoh kode program yang saya tulis bukan contoh implementasi real world.
Yang tersembunyi
Seperti yang sudah kita ketahui bersama, untuk kepentingan security/information hiding, .NET memiliki modifier private, protected, dan internal. Tulisan ini akan membahas bagaimana melakukan unit test terhadap method/property dengan ketiga modifier tersebut.
Code Analysis: Coding Standard (from who-cares code to code with care)
Pertama kali saya membuat Sistem Informasi yang komersil (yaitu Sistem Informasi Perikanan), dengan project management seadanya, dan proses yang "Ah gile" instead of Agile. Team Leader memberikan presentasi software yang baru kami selesaikan di depan Client. Hingga suatu titik muncul sebuah form dengan sebuah lable tertulis "Nama Ikan", dan di sebelah lable tersebut terdapat text box yang tertulis "Sapi". Ups!! Client bengong, Team Leader melirik pada saya dan menggugat dengan sebuah pertanyaan "Kok ada ikan namanya Sapi??"

Code Analysis: when the referee blows the whistle
Suka maen sepakbola? atau paling nggak, pernah nonton sepakbola kan.. Pasti udah nggak asing lagi ama sempritan wasit klo terjadi pelanggaran aturan sepakbola..
Nah.. ketika kita membangun sebuah software, kita juga bisa terapkan aturan pada code yang kita buat. Jika melanggar aturan tersebut, maka akan mendapatkan kartu kuning atau kartu merah ;D
Gimana ceritanya??
Unit Testing – Bagian II: Bagaimana
Sebuah konsep tanpa implementasi atau sebuah teori tanpa praktek ibarat janji tinggal janji (tak ditepati). Konsep unit testing sudah saya bahas pada artikel sebelumnya, Unit Testing - Bagian I: Apa, Mengapa. Bagaimana implementasi unit testing pada Software Engineering? Kali ini, saya akan coba untuk membahasnya dengan menggunakan teknologi Microsoft. Sebelum membaca lebih lanjut, bagi anda yang belum mengerti apa itu unit testing, mungkin bisa baca konsep nya terlebih dahulu. Karena keterbalikan dari janji tinggal janji, sebuah implementasi tanpa konsep ibarat cinta buta, apa yang dilakukan tak lebih dari luapan hati dan perasaan... halaaa jadi ngaco deh..ahahaa. Lupakan tentang cinta, saya juga bukan ahlinya ;P
Saya bikin sebuah class bernama Fighter pada project Fighting.Api di dalam sebuah solution bernama Fighting, dengan beberapa member (method dan field) seperti berikut:
const Vs. static readonly
Setelah beberapa yang lalu saya membahas tentang perbedaan antara public variable dan property, kali ini saya akan coba untuk membahas tentang perbedaan antara const dan static readonly.
Jika dilihat dari fungsinya (juga dari namanya), keduanya memiliki fungsi yang sama yaitu; sebagai representasi nilai yang tidak dapat berubah (unchangable value).
Code snippet berikut ini memperlihatkan sebuah class bernama Sepeda yang memiliki sebuah konstan bernama MEREK:
public class Sepeda
{
public const string MEREK = "Kumbang Tangguh";
.....................
.....................
.....................
}
Public variable vs. property
Ada yang menarik tentang public variable dan property. Sekilas tampak sederhana, public variable, that's it ^^ Lalu bagaimana dengan property? Tidak jauh berbeda, keduanya tampak sederhana. Tapi, sebenarnya dibalik kesederhanaan mereka, tersimpan rahasia keunikan masing-masing. Serupa tapi tak sama. Seolah tidak berbeda, ketika saya menggunakan sebuah public variable, maka saya bisa menggantinya dengan property, dan vice versa. Semudah itu kah? Mengapa harus ada property jika keberadaan public variable sudah cukup untuk mengakomodasikan kebutuhan pemrograman, termasuk Pemrograman Berorientasi Obyek / Object Oriented Programming (OOP)?
Mari kita coba mengenal mereka lebih dekat.. Oya sebelumnya, tulisan saya ini merujuk pada teknologi .NET dan contoh-contoh kode yang ada pada tulisan ini menggunakan bahasa C#. Tapi tidak menutup kemungkinkan untuk mengimplementasikan public variable dan property ke dalam bahasa yang lain, seperti JAVA, VB.NET, dan bahasa lainnya yang mendukung implementasi property-walaupun beberapa bahasa pemrograman mengimplementasikan property dengan cara yang berbeda, JAVA contohnya, dengan konsep mutator/accessor nya.