原文地址: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,如下图。
如果不安装这货是不会出现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方法上点右键选择运行测试,结果肯定引发了异常,这个异常是我们上面自己写的。如果去掉红框中的代码再运行,那么结果就是通过。

