单元测试示例

更新:2007 年 11 月

“Woodgrove Bank”示例由可置入简单程序的代码组成。然后可以生成测试 Woodgrove Bank 程序各种方法(公共和私有方法)的单元测试。

这些示例代码是为以下演练而提供的:

示例代码

此处提供的是该示例的最新代码:

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 < 0)
            {
                throw new ArgumentOutOfRangeException("amount");
            }

            m_balance += amount;
        }

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

            if (amount > m_balance)
            {
                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);
        }

    }
}

/* The example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious.  No association with any real company, organization, product, domain name, email address, logo, person, places, or events is intended or should be inferred. */
说明:

您可能会注意到在您计算机硬盘上 Visual Studio Team System Test Edition 的安装目录中有此示例的旧版本。默认情况下,示例是在安装过程中复制到 \Program Files\Visual Studio 9\Samples\ 下的文件夹中的。对于此示例,建议您改用从此帮助主题中获取的代码。

使用代码

若要使用这些代码,您必须首先在 Visual Studio 中为其创建一个项目。按照演练:创建并运行单元测试中“准备演练”部分所述的步骤进行操作。 

请参见

任务

演练:创建并运行单元测试

演练:运行测试并查看代码覆盖率

演练:使用命令行测试实用工具