VS2013单元测试

原文地址:http://www.luacloud.com/2014/vs2013-unit-test-generator.html

下载地址:http://visualstudiogallery.msdn.microsoft.com/45208924-e7b0-45df-8cff-165b505a38d7/view/Discussions/1 

 

打开VS2013,选择工具-扩展和更新,搜索并安装Unit Test Generator,如下图。

Install Unit Test Generator

Install Unit Test Generator

如果不安装这货是不会出现Generate Unit Test的选项的。

于是,“举个栗子”;

创建一个控制台项目MyUnitTest。

然后创建一个类:TestFunction.cs,添加如下代码:

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyUnitTest
{
    public class TestFunction
    {
        /// <summary>
        /// 转换为Int
        /// </summary>
        /// <param name="value">要转换的文本</param>
        /// <returns>转换后的值</returns>
        public int ToInt(string value)
        {
            int result = 0;
            if (!string.IsNullOrWhiteSpace(value))
            {
                if (!int.TryParse(value, out result))
                {
                    throw new Exception("文本内容无法转换为Int类型。");
                }
            }
            else
            {
                throw new Exception("文本不能为空。");
            }
            return result;
        }
    }
}

然后在该页面ToInt方法体内右键后选择Generate Unit Test,弹出后直接选择OK,会自动生成测试项目。将代码进行如下修改:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MyUnitTest;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace MyUnitTest.Tests
{
    [TestClass()]
    public class TestFunctionTests
    {
        [TestMethod()]
        public void ToIntTest()
        {
            TestFunction target = new TestFunction();
            string value = "5";
            int expected = 5;//预期的值
            int actual;//实际的值
            actual = target.ToInt(value);
            Assert.AreEqual(expected, actual);
            value = "5.5";
            expected = 5;
            actual = target.ToInt(value);
            Assert.AreEqual(expected, actual);
        }
    }
}

然后在ToIntTest方法上点右键选择运行测试,结果肯定引发了异常,这个异常是我们上面自己写的。如果去掉红框中的代码再运行,那么结果就是通过。

exception

exception

posted @ 2014-04-16 17:49  dapeng888  阅读(1024)  评论(0编辑  收藏  举报