VS2013下对项目进行单元测试

最近在看单元测试方面的东西,在vs2013下如何进行单元测试呢?用一个小例子进行说明。

1.首先在VS2013下新建工程,选择Visual C#,选择建立一个类库项目,命名为Bank。

2.将以下代码放入到Class1.cs中

using System; 

namespace BankAccountNS
{
    ///  
    /// Bank Account demo class. 
    ///  
    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; // intentionally incorrect code
        }

        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);
        }

    }
}


将Class1.cs文件重命名为BankAccount.cs ,现在我们就有了一个名为Bank的简单项目,并且还包含了一个类文件叫做BankAccount.cs。假设我们想要测试的代码段为上述代码段中的Debit(double amount)方法。

3接下来需要创建一个单元测试项目,点击“文件”选择添加一个“项目”,选择Visual C#下的Test,选择列表里的单元测试项目。将项目命名为BankTest,点击确认。现在我们就新建了一个单元测试项目了,接下来我们需要在BankTest中添加一个对于Bank项目的引用,在解决方案下的BankTest项目中选择添加引用,打开引用管理器,点击程序集,在扩展里,点击浏览,添加Bank程序的dll。

4    在解决方案中,选择UnitTest1.cs 文件重命名为BankAccountTests.cs。打开后发现代码如下如下,

// unit test code
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace BankTests
{
    [TestClass]
    public class BankAccountTests
    {
        [TestMethod]
        public void TestMethod1()
        {
        }
    }
}

在第一行添加工作空间的引用,

using BankAccountNS
如上述代码所示,注:第一行中的BankAccountAS指的是Bank项目下BankAccount.cs文件里工作空间的名字。

5  将上述方法TestMethod1()替换成下面的代码:

// unit test code
[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");
}


注意测试方法必须无参,返回值必须为void,且在使用方法前必须添加[TestMethod]进行声明。

现在就可以运行项目查看结果啦,点击菜单栏中的测试,选择运行所有测试,这时会发现显示不通过测试,大家找出错误原因了吗?嘿嘿,原因是Bank中的Debit(double amount)方法中

m_balance += amount;

应该将加号改成减号,再次保存运行测试,就会发现可以通过测试啦~~~单元测试是一个程序员必备技能哦,大家学会了吗?成功后就会像如图所示啦~~~~

VS2013下对项目进行单元测试_第1张图片






你可能感兴趣的:(VS2013下对项目进行单元测试)