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