Inisialisasi Shared Object di NUnit

SetUp/TearDown

Dalam melakukan test, terkadang kita membutuhkan object-object yang harus diinisialisasi terlebih dahulu sebelum test dijalankan. Kemudian setelah test selesai object-object tadi harus didispose. Misalnya, koneksi database, buka tutup file, konfigurasi, registry dan lain-lain. Didalam NUnit, ini disebut SetUp dan TearDown. SetUp untuk inisialisasi dan TearDown untuk dispose.

NUnit mensupport dua macam inisialisasi dan dispose:

  • Untuk setiap test (method test) digunakan attribute [SetUp] dan [TeatDown]. Maka, dengan attribut ini setiap kali sebuah method test dijalankan, ia juga akan dijalankan.

    using NUnit.Framework;
    namespace Fatur.TDD.UnitTests{
    	[TestFixture]
    	public class CalculatorFixture{
    		[SetUp]
    		public void Init(){
    		}
    		[Test]
    		public void Test1(){
    		}
    		[Test]
    		public void Test2(){
    		}
    		[TearDown]
    		public void Dispose(){
    		}
    	}
    }
    

    Ketika Test1() dijalankan maka Init() dijalankan. Ketika Test1() selesai maka Dispose() dijalankan. Ketika Test2() dijalankan maka Init() kembali dijalankan() begitu juga ketika Test2() selesai, Dispose() dijalankan. Jadi dengan atribut ini masing-masing akan dijalankan sebanyak test yang ada didalam class.

  • Sekali dijalankan untuk semua test, digunakan [TestFixtureSetUp] dan [TestFixtureTearDown]. Karena dijalankan sekali, maka untuk setiap perubahan pada satu test akan mempengaruhi test-test lainnya.

    using NUnit.Framework;
    namespace Fatur.TDD.UnitTests{
    	[TestFixture]
    	public class CalculatorFixture{
    		[TestFixtureSetUp]
    		public void Init(){
    		}
    		[Test]
    		public void Test1(){
    		}
    		[Test]
    		public void Test2(){
    		}
    		[TestFixtureTearDown]
    		public void Dispose(){
    		}
    	}
    }
    

    Bila attribute ini yang kita pakai, baik Init() maupun Dispose() hanya akan dijalankan sekali yaitu ketika class di konstruksi dan class hendak dibuang.

[Note:Init() dan Dispose() boleh diganti dengan nama yang lain.]

Iklan

There are no comments on this post.

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: