用於建立單元測試的範例專案
"Woodgrove Bank" 範例由程式碼組成,您可以將它建置到簡單的程式中, 接著您可以產生單元測試,以測試 Woodgrove Bank 程式的兩種不同方法 (公用方法和私用方法)。
這個範例的程式碼是為了在下列逐步解說中使用所提供:
逐步解說:針對 Managed 程式碼建立和執行單元測試. 這個逐步解說會帶領您建立和自訂單元測試、執行單元測試,以及檢查測試結果的步驟。
逐步解說:執行測試並檢視程式碼涵蓋範圍. 這個逐步解說會說明如何檢視程式碼涵蓋範圍資料,此資料會顯示正在測試之專案程式碼的比例。
逐步解說:使用命令列測試公用程式. 在這個逐步解說中,您會使用 MSTest.exe 命令列工具執行測試並檢視結果。
附註:這個範例中唯一刻意設計的錯誤就是在 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 中為其建立專案。 請依照逐步解說:針對 Managed 程式碼建立和執行單元測試中<準備逐步解說>一節的步驟執行。