Skip to content
2 Juni 2010 / Jeffrey Hermanto Halimsetiawan

Tutorial Unit Testing dengan Microsoft Visual Studio 2010 – Seri 2


Langkah-langkah Unit Testing dengan Microsoft Visual Studio 2010 adalah sebagai berikut :

  • Install Microsoft Visual Studio 2010 (Hal yang harus dipenuhi terlebih dahulu adalah OS komputer anda minimum telah berada pada versi Windows XP SP3 )
  • Setelah berhasil melakukan instalasi. Launch MicrosoftVisual Studio 2010. Anda akan ditakjubkan dengan perubahan signifikan pada tampilan IDE-nya.
  • Lalu bukalah Solution File (.SLN) yang telah ada pada versi Microsoft Visual Studio sebelumnya atau membuat sebuah file solution baru.

    Microsoft Visual Studio 2010 - Start

    Microsoft Visual Studio 2010 - Start

  • Pada kesempatan ini penulis akan membuka sebuah project yang akan penulis verifikasi bernama WorldMartCatalog.
  • Penulis akan menguji PanelumumController.cs sebagai obyek unit test pada kesempatan ini. Berikut adalah isi dari PanelumumController.cs.
	using System;
	using System.Collections.Generic;
	using System.Linq;
	using System.Text;
	using Oracle.DataAccess.Client;

	namespace WorldMart.Logic
	{
	    public class PanelumumController
	    {
	        private Koneksi con;

	        public bool changePassword(string id,string curpass, string newpass, string confirm)
	        {
	             if (!curpass.Equals("") && !newpass.Equals("") && !confirm.Equals(""))
	            {
	                con=new Koneksi();
	                con.Open();
	                String sql = "SELECT USERUSER, USERPASS, IDAKSES " +
	                             "FROM USER2 US, PEGAWAI PEG WHERE PEG.IDPEGAWAI = '" + id +
	                             "' AND USERPASS = '" + MD5Encryptor.EncodePassword(curpass) + "' AND PEG.IDPEGAWAI = US.IDPEGAWAI";
	                OracleDataReader odr = con.ExecuteReader(sql);
	                if (odr != null && odr.Read())
	                {
	                    if (newpass.Equals(confirm))
                            {
	                        sql = "UPDATE USER2 SET USERPASS = '" + MD5Encryptor.EncodePassword(newpass) + "' WHERE IDPEGAWAI = '" + id + "'";
	                        int affected=con.ExecuteNonQuery(sql);
	                        if (affected != 0) return true;
	                    }

	                }
	                else return false;
	            }
	           return false;
	        }
	    }
     }

  • Penulis akan menguji satu method yang ada pada class ini untuk memverifikasi fungsinya sebagai perubah password.
  • Untuk itu , penulis akan membuat sebuah unit test dengan cara memilih toolbar “Test” pada sisi atas IDE Microsoft Visual Studio 2010 dan pilih “New test”.

    4. Pada Menu Bar pilih ‘Test’ kemudian ‘New Test’

    Pada Menu Bar pilih ‘Test’ kemudian ‘New Test’

  • Pilih “Unit Test Wizard”.

    Unit Test Wizard

    Unit Test Wizard

  • Pada textbox Add to Test Project jika anda belum memiliki project yang dimaksud anda bisa memilih create new project pada Combo Box Tersebut dan beri nama sesuai dengan Nama Test Project yang tertera di Layar yaitu “WorldMart.Test”. Tekan OK.
  • Lalu Pilih Class yang ingin anda verifikasi, Expand WorldMart.Logic karena class yang ingin dilakukan testing tadi adalah “PanelumumController.cs” yang berada pada namespace “WorldMart.Logic”.

    Create Unit Tests

    Create Unit Tests

  • Pilih Method yang ingin anda verifikasi dan validasi. Dalam kesempatan ini penulis akan memilih changePassword karena memiliki fungsionalitas utama pada class ini.
  • Tekan OK.
  • Dan Lihatlah sebuah keajaiban terjadi. Code Testing telah degenerate oleh Microsoft Visual Studi 2010. Satu-satunya yang harus anda ganti adalah code yang ada pada comment //TODO……
[TestMethod()]
        public void changePasswordTest()
        {
            PanelumumController target = new PanelumumController(); // TODO: Initialize to an appropriate value
            string id = string.Empty; // TODO: Initialize to an appropriate value
            string curpass = string.Empty; // TODO: Initialize to an appropriate value
            string newpass = string.Empty; // TODO: Initialize to an appropriate value
            string confirm = string.Empty; // TODO: Initialize to an appropriate value
            bool expected = false; // TODO: Initialize to an appropriate value
            bool actual;
            actual = target.changePassword(id, curpass, newpass, confirm);
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }
  • Tuliskan input sesuai dengan keinginan anda pada setiap baris yang memuat comment out “//TODO”.
  • Penulis Akan melakukan input seperti yang terlihat pada code dibawah ini:
[TestMethod()]
        public void changePasswordTest()
        {
            Logic.Koneksi.host = "localhost";
            Logic.Koneksi.serviceName = "XE";
            Logic.Koneksi.user = "jeffrey";
            Logic.Koneksi.password = "jeffrey";
            PanelumumController target = new PanelumumController(); // TODO: Initialize to an appropriate value
            string id = "0005"; // TODO: Initialize to an appropriate value
            string curpass = "ali"; // TODO: Initialize to an appropriate value
            string newpass = "eky"; // TODO: Initialize to an appropriate value
            string confirm = "eky"; // TODO: Initialize to an appropriate value
            bool expected = true; // TODO: Initialize to an appropriate value
            bool actual;
            actual = target.changePassword(id, curpass, newpass, confirm);
            Assert.AreEqual(expected, actual);
            //Assert.Inconclusive("Verify the correctness of this test method.");
        }

  • Lalu Pilih Toolbar Test->Run->dan All Test in Current Context.

    Tests in Current Context

    Tests in Current Context

  • Lalu akan terlihat tampilan apakah proses pengujian telah berhasil ataupun gagal. Pada kesempatan ini proses unit testing telah berhasil dengan adanya tanda “checklist Hijau pada bagian Testing Output.”

    Test Result Unit Test

    Test Result Unit Test

  • Anda dapat menambah testing pada class testing tersebut dengan menambahkan sebuah method yang diawali dengan ‘[TestMethod()]’. Seperti pada contoh berikut ini:
[TestMethod()]
        public void changePasswordTestSalah()
        {
            PanelumumController target = new PanelumumController(); // TODO: Initialize to an appropriate value
            string id = "0005"; // TODO: Initialize to an appropriate value
            string curpass = "ali"; // TODO: Initialize to an appropriate value
            string newpass = "eky"; // TODO: Initialize to an appropriate value
            string confirm = "eky"; // TODO: Initialize to an appropriate value
            bool expected = false; // TODO: Initialize to an appropriate value
            bool actual;
            actual = target.changePassword(id, curpass, newpass, confirm);
            Assert.AreEqual(expected, actual);
            //Assert.Inconclusive("Verify the correctness of this test method.");
        }

Microsoft sangat terampil dalam mempermudah dan mengubah kecenderungan programmer selama ini. Membuat Microsoft Visual Studio menjadi IDE yang tak mungkin dilupakan setiap programmer yang penah mencoba sensasinya. Jadi selamat mencoba mengeksplorasi kekuatan IDE ini terutama pada berbagai unit testing lainnya yang masih belum dijelaskan pada tutorial bimbingan kali ini.

Untuk lebih jelasnya, silahkan download PDF berikut :

Tutorial Unit Testing World Mart dengan Visual Studio 2010 – tutorialpemrograman.wordpress.com

Eky Pratama Halim

5107100032

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: