vs 2005 team单元测试

  vs 2005 team 版提供了强大的测试功能,当然Nunit也是很优秀的测试工具。可是很多人是反对单元测试的,觉得它增加了开发人员的工作量,当然对于单元测试的必要性每个人都有自己的理解。在我参与老师的项目中却经常用到单元测试,最近有借到一本VS2005 Team System的教程,对vs2005测试有了升入地学习。
  单元测试通常是针对DAL和BLL层的方法,在显示层还没有开始使用BLL的方法之前就可以对DAL和BLL层进行测试,这样的好处是减少调试时间(至少目前我体会到了),当然对项目增加新功能而因入地错误和缺陷更是有指导意义。
    下面我来介绍一下单元测试:首先打开一个项目,添加测试项目如图 vs 2005 team单元测试 

    新建TestProject1项目,然后如图添加单元测试
vs 2005 team单元测试

系统会将解决方案中的类库加载进来,你可以选中你想要进行单元测试的类库vs 2005 team单元测试 
  这样就TestProject1中将会生成BsBLL的中所有类的测试类
vs 2005 team单元测试
vs 2005 team单元测试 
更简便的创建单元测试的方法是在类库中的类方法下右键选择单元测试如图
vs 2005 team单元测试
然后打开在工具里面打开测试管理器里:新建测试列表,然后将测试方法加入到测试列表
vs 2005 team单元测试 

下面看看生成的单元测试类:
每个单元测试类本身有 ClassInitialize ClassCleanup TestInitialize TestCleanupAssemblyInitialize AssemblyCleanup属性但是在生成的单元测试类中都是被注释的
看一个方法
 /// <summary>
        ///Add (PublishRegist) 的测试
        ///</summary>
     [TestMethod()]
        public void AddTest()
        {
            PublishRegist model = null; // TODO: 初始化为适当的值
            int expected = 0;
            int actual;
            actual = bsBLL.b_PublishRegist.Add(model);
            Assert.AreEqual(expected, actual, "bsBLL.b_PublishRegist.Add 未返回所需的值。");
            Assert.Inconclusive("验证此测试方法的正确性。");
        }
确定单元测试成功的方法就是比较期望值和真实结果。
Assert类提供的方法有:
Assert.AreEqual  Assert.AreNotEqual 判断expected actual 是否相等 (使用最频繁的)
Assert.AreSame  Assert.AreNotSame 比较参数的应用(2个对象指向同一个参数才通过测试)
Assert.IsTrue Assert.fasle 测试返回值为bool型的方法
Assert.IsNull Assert.IsNotNull 验证给定的对象是否为空
Assert.IsInstanceOfType Assert.IsNotInstanceOfType 验证返回的对象类型是否是预期的类型
Assert.Fail失败 Asser.Inconclusive无法验证。
写好测试代码,可以根据需要选择运行测试和调试测试,并且同样可以设置断点查看.
还有CollectionAssert类和stringAssert类,就不介绍了,有点晚了,要休息了

你可能感兴趣的:(单元测试)