Visual Studio 使用教程:為托管代碼創建和運行單元測試(上)
Visual Studio 是功能完備的 IDE,可用于編碼、調試、測試和部署到任何平臺,Visual Studio使用 .NET 開發 iOS、Android 和 Web 應用和游戲。
本文將逐步指導您使用用于托管代碼的Microsoft單元測試框架和Visual Studio Test Explorer創建,運行和自定義一系列單元測試。您從正在開發的C#項目開始,創建執行其代碼的測試,運行測試并檢查結果。然后,您更改項目代碼并重新運行測試。
創建一個項目進行測試
- 打開Visual Studio。在開始窗口中,選擇創建一個新項目。
- 搜索并選擇C#Console App(.NET Core)項目模板,然后單擊“ 下一步”。
- 將項目命名為Bank,然后單擊創建。
- 該銀行創建項目并顯示在解決方案資源管理器與Program.cs中的代碼編輯器中打開文件。
注意:如果Program.cs中是不是在編輯器中打開,雙擊該文件的Program.cs在解決方案資源管理器中打開它。
- 用以下定義類BankAccount的 C#代碼替換Program.cs的內容:
using System; namespace BankAccountNS { ////// Bank account demo class. ///public class BankAccount { private readonly string m_customerName; private double m_balance; 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 (amount > m_balance) { throw new ArgumentOutOfRangeException("amount"); } if (amount < 0) { throw new ArgumentOutOfRangeException("amount"); } m_balance += amount; // intentionally incorrect code } public void Credit(double amount) { if (amount < 0) { throw new ArgumentOutOfRangeException("amount"); } m_balance += amount; } 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); } } }
- 右鍵單擊并在“ 解決方案資源管理器”中選擇“重命名”,將文件重命名為BankAccount.cs。
- 在“生成”菜單上,單擊“生成解決方案”。
- 您現在有了一個可以測試的項目。在本文中,測試重點在于該Debit方法。Debit從帳戶中提取資金時將調用該方法。
創建一個單元測試項目
- 在文件菜單上,選擇添加 > 新建項目。
提示:您也可以在解決方案資源管理器中右鍵單擊解決方案,然后選擇添加 > 新建項目。
- 搜索并選擇C#MSTest測試項目(.NET Core)項目模板,然后單擊“ 下一步”。
- 將項目命名為BankTests。點擊創建。
- 該BankTests項目被添加到該銀行的解決方案。
- 在BankTests項目中,添加對Bank項目的引用。
- 在解決方案資源管理器中,選擇依賴下BankTests項目,然后選擇添加引用從右鍵菜單。
- 在“引用管理器”對話框中,展開“項目”,選擇“解決方案”,然后檢查“銀行”項。
- 選擇確定。
創建測試類
創建一個測試類以驗證BankAccount該類。您可以使用由項目模板生成的UnitTest1.cs文件,但為文件和類指定更多描述性名稱。
重命名文件和類
- 要重命名文件,請在解決方案資源管理器中,選擇BankTests項目中的UnitTest1.cs文件。從右鍵單擊菜單中,選擇重命名,然后將文件重命名為BankAccountTests.cs。
- 要重命名該類,請將光標放在UnitTest1代碼編輯器中,右鍵單擊,然后選擇“ 重命名”。鍵入BankAccountTests,然后按Enter鍵。
現在,BankAccountTests.cs文件包含以下代碼:
using Microsoft.VisualStudio.TestTools.UnitTesting; namespace BankTests { [TestClass] public class BankAccountTests { [TestMethod] public void TestMethod1() { } } }
添加using語句
在測試類中添加一條using語句,以能夠在不使用完全限定名稱的情況下調用被測項目。在類文件的頂部,添加:
using BankAccountNS;
測試等級要求
測試課程的最低要求是:
- [TestClass]在包含要在“測試資源管理器”中運行的單元測試方法的任何類上,此屬性都是必需的。
- 您希望測試資源管理器識別的每個測試方法都必須具有該[TestMethod]屬性。
創建第一個測試方法
在此過程中,您將編寫單元測試方法以驗證類Debit方法的行為BankAccount。
至少需要檢查三種行為:
- 如果借方金額大于余額,則此方法將引發ArgumentOutOfRangeException。
- 如果借方金額小于零,則該方法將引發ArgumentOutOfRangeException。
- 如果借方金額有效,則該方法從帳戶余額中減去借方金額。
提示:您可以刪除默認TestMethod1方法,因為在本演練中不會使用它。
創建測試方法
第一個測試驗證有效金額(即小于帳戶余額且大于零的金額)從帳戶中提取了正確的金額。將以下方法添加到BankAccountTests該類:
[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"); }該方法很簡單:它BankAccount以期初余額設置新對象,然后提取有效金額。它使用AreEqual方法來驗證期末余額是否符合預期。
測試方法要求
測試方法必須滿足以下要求:
- 它用[TestMethod]屬性裝飾。
- 它返回void。
- 它不能有參數。
本文內容篇幅較長,分為上下兩篇,點擊可以查看下篇>>,敬請期待~
喜歡該產品的朋友可以點擊下載Visual Studio試用版免費體驗~
想要購買Visual Studio正版授權,或了解更多產品信息請點擊