Share via


用於建立單元測試的範例專案

"Woodgrove Bank" 範例由程式碼組成,您可以將它建置到簡單的程式中, 接著您可以產生單元測試,以測試 Woodgrove Bank 程式的兩種不同方法 (公用方法和私用方法)。

這個範例的程式碼是為了在下列逐步解說中使用所提供:

附註:這個範例中唯一刻意設計的錯誤就是在 Debit 方法中 "m_balance += amount" 的等號前面應該是減號而非加號。

程式碼範例

在此提供這個範例的最新程式碼:

using System; 

namespace BankAccountNS
{
    /// <summary> 
    /// Bank Account demo class. 
    /// </summary> 
    public class BankAccount
    {
        private string m_customerName;

        private double m_balance;

        private bool m_frozen = false;

        private BankAccount()
        {
        }

        public BankAccount(string customerName, double balance)
        {
            m_customerName = customerName;
            m_balance = balance;
        }

        public string CustomerName
        {
            get { return m_customerName; }
        }

        public double Balance
        {
            get { return m_balance; }
        }

        public void Debit(double amount)
        {
            if (m_frozen)
            {
                throw new Exception("Account frozen");
            }

            if (amount > m_balance)
            {
                throw new ArgumentOutOfRangeException("amount");
            }

            if (amount < 0)
            {
                throw new ArgumentOutOfRangeException("amount");
            }

            m_balance += amount;
        }

        public void Credit(double amount)
        {
            if (m_frozen)
            {
                throw new Exception("Account frozen");
            }

            if (amount < 0)
            {
                throw new ArgumentOutOfRangeException("amount");
            }

            m_balance += amount;
        }

        private void FreezeAccount()
        {
            m_frozen = true;
        }

        private void UnfreezeAccount()
        {
            m_frozen = false;
        }

        public static void Main()
        {
            BankAccount ba = new BankAccount("Mr. Bryan Walton", 11.99); 

            ba.Credit(5.77);
            ba.Debit(11.22);
            Console.WriteLine("Current balance is ${0}", ba.Balance);
        }

    }
}

/* 此處所描述的範例公司、組織、產品、網域名稱、電子郵件地址、商標、人員、地點與事件均屬虛構。 並非影射任何真實的公司、組織、產品、網域名稱、電子郵件地址、商標、人員、地點或事件。 */

使用程式碼

若要使用此程式碼,您必須先在 Visual Studio 中為其建立專案。 請依照逐步解說:建立和執行單元測試中<準備逐步解說>一節的步驟執行。

請參閱

工作

逐步解說:建立和執行單元測試

逐步解說:執行測試並檢視程式碼涵蓋範圍

逐步解說:使用命令列測試公用程式