Contoh Kasus Unit Test Bank Account Menggunakan Visual Studio 2012

on Rabu, 17 Mei 2017

Pada contoh kasus ini, kita akan membuat unit testing Bank Account menggunakan Visual Studio 2012. Sample Code dapat di copy pada link berikut : Sample Code untuk Unit Testing - Bank Account

Langkah pembuatan Class :
1. Buka Visual Studio 2012 - New Project - Other Language - C# - ClassLibrary, Name : BankCS
2. Rename Class1.cs menjadi BankAccount.cs
3. Paste sample code pada BankAccount.cs
4. Klik menu Build - Build Solution

Pada kasus ini kita akan menguji method debit

// method under test  
public void Debit(double amount)  
{  
    if(amount > m_balance)  
    {  
        throw new ArgumentOutOfRangeException("amount");  
    }  
    if (amount < 0)  
    {  
        throw new ArgumentOutOfRangeException("amount");  
    }  
    m_balance += amount;  
}  
  
Dengan menganalisis method yang sedang diuji, setidaknya ada tiga perilaku yang perlu diperiksa:
1. ArgumentOutOfRangeException jika debit lebih besar dari balance
2. ArgumentOutOfRangeException jika debit lebih kecil dari 0
<0 p="">3. Jika 1 dan 2 tidak terpenuhi, balance=balance-debit.
Pada tes pertama kami, kita akan memverifikasi  jumlah yang valid (debit0) maka balance=balance-debit.

Langkah pengujian :
1. Klik menu File - Add - New Project - Other Language - C# - Test - UnitTestProject, Name : BankTest
<0 p="">
2. Rename unitTest1.cs menjadi BankAccountTests.cs
3. Add Reference dengan cara klik kanan pada BankTest di Solution Explorer - Add Reference - Solution - BankCS
<0 p="">
4. Pada BankAccountTests.cs tambahkan :
    using BankAccountNS;
5. Tambahkan code berikut di dalam test method :

// unit test code  
[TestMethod]  
public void Debit_WithValidAmount_UpdatesBalance()  
{  
    // arrange  
    double beginningBalance = 11.99;  
    double debitAmount = 4.55;  
    double expected = 7.44;  
    BankAccount account = new BankAccount("Mr. Bryan Walton", beginningBalance);  

    // act  
    account.Debit(debitAmount);  

    // assert  
    double actual = account.Balance;  
    Assert.AreEqual(expected, actual, 0.001, "Account not debited correctly");  
}  
6. Klik menu Build - Build Solution
7. Buka Test Explorer dari Menu Test - Windows - Test Explorer
8. Klik Run All untuk menjalankan semua test method yang sudah dibuat.

9. Hasil dari test method debitWithValidAmount adalah Failed. Karena ada yang salah pada class library, ganti  m_balance += amount; menjadi  m_balance -= amount;
10. Build kembali Solution, lalu Run All Test, maka hasil Test berubah menjadi Pass
11. Lakukan hal yang sama untuk test method lain
ArgumentOutOfRangeException jika debit lebih besar dari balance

 // unit test code  
[TestMethod]  
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public void Debit_WhenDebitBiggerThanBalance()  
{  
    // arrange  
    double beginningBalance = 11.99;  
    double debitAmount = 15.00;  
    BankAccount account = new BankAccount("Mr. Bryan Walton", beginningBalance);  
    // act  
    account.Debit(debitAmount);  
    // assert  
}  

ArgumentOutOfRangeException jika debit lebih kecil dari 0
 // unit test code  
[TestMethod]  
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public void Debit_WhenDebitLessThanZero()  
{  
    // arrange  
    double beginningBalance = 11.99;  
    double debitAmount = -10.00;  
    BankAccount account = new BankAccount("Mr. Bryan Walton", beginningBalance);  
    // act  
    account.Debit(debitAmount);  
    // assert  
}  

0 komentar: