彩票走势图

Visual Studio 使用教程:为托管代码创建和运行单元测试(上)

翻译|使用教程|编辑:况鱼杰|2020-03-17 15:59:52.073|阅读 353 次

概述:本文将逐步指导您使用用于托管代码的Microsoft单元测试框架和Visual Studio Test Explorer创建,运行和自定义一系列单元测试。您从正在开发的C#项目开始,创建执行其代码的测试,运行测试并检查结果。然后,您更改项目代码并重新运行测试。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

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]属性。
元测试项目中可以具有其他不具有该[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正版授权,或了解更多产品信息请点击

慧聚IT


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP