Home > Test Driven Development > Assert First

Assert First

Kapan kita harus menuliskan assert.. Assert.AreEquals(…, …..); ???

Tulislah pertama kali …

Ketika kita menuliskan test, kita sebenarnya menyelesaikan beberapa masalah sekaligus. meskipun kita tidak memikirkan bagaimana implementasinya. Diantaranya :

  1. Fungsionalitasnya punya siapa ?? apakah dari method yg sudah ada, modifikasi method, method baru, ataukah kelas baru
  2. Bagaimana dia akan dipanggil ?
  3. Bagaimana mengecek fungsi tersebut benar atau salah
  4. Bagaimana jawaban yg benar ?
  5. Apakah test2 lain yg muncul ?

dapat disederhanakan menjadi dua bagian bagaimana jawaban yg benar dan bagaimana cara mengeceknya. Contohnya adalah komunikasi socket. ketika kita selesai maka socket akan ditutup dan kita mendapatkan hasil bacaan string abc. nah itulah kuncinya. Apa yg kita mau ? Socket akan tertutup dan hasil pembacaan string abc. dari sanalah kita bergerak. bergeraklah dari akhir.

[Test]
public void TestCompleteTransaction()
{
	...
	Assert.AreTrue(reader.IsClosed);
	Assert.AreEquals("abc", reply.Contents):
}

setelah itu kita akan memunculkan pertanyaan lain. reply ini darimana ?? tentu saja dari socket. Nah kita naik satu langkah ke atas. sedikit demi sedikit. bergerak dari bawah ke atas.

[Test]
public void TestCompleteTransaction()
{
       ...
	Buffer reply = reader.Contents;
	Assert.AreTrue(reader.IsClosed);
	Assert.AreEquals("abc", reply.Contents):
}

mmm.. socket dapat darimana ?? oo.. itu didapat dari hasil koneksi ke server.

[Test]
public void TestCompleteTransaction()
{
       ...
        Socket reader= Socket("localhost", defaultPort());
	Buffer reply = reader.Contents;
	Assert.AreTrue(reader.IsClosed);
	Assert.AreEquals("abc", reply.Contents):
}

yaks .. dikit lagi nyampe di puncak. Tapi sebelumnya kita buka dulu koneksi di server.

[Test]
public void TestCompleteTransaction()
{
        Server writer= Server(defaultPort(), "abc");
        Socket reader= Socket("localhost", defaultPort());
	Buffer reply = reader.Contents;
	Assert.AreTrue(reader.IsClosed);
	Assert.AreEquals("abc", reply.Contents):
}

kita mendapat keputusan2 dan jawaban dari pertanyaan tersebut dalam hitungan detik. berikan saja apa yg dibutuhkan dan masalah selesai. biarkan testnya yg nyetir kita bikin code. ga usah repot2.

  1. Angga Lingga
    June 5, 2009 at 2:38 am

    Keren bang …
    Jadi bang intinya, secara singkat kalo boleh tahu TDD itu apa ya bang …

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: