• VSTS写单元测试


                          用VSTS写单元测试                          

    许多应用程序都会用到“用户”类型,今天我要用的是ConsoleApplication1名字

    1.打开VS2013 --> 新建一个项目。这里我们默认创建一个控制台项目。取名为ConsoleApplication1

    2.在解决方案里面新增一个单元测试项目。取名为默认ConsoleApplication1

    创建完毕后项目结构大概如下:

     

    3.进入控制台项目UnitTestDemo的Program类库,创建一个Add方 UnitTestDemo

    {
        public class User
        {
            public void User(string userEmail)
            {
    m_emaile=userEmaile;

    } private string
    m_emaile ;//user emaile as user as user id
    }
    }

    4.我们的出现“New Test Project”弹窗,目的就是单元测试方法运行。

    5.在单元测试项目后,注意到中,出现三个新的文,引用控制台项目,引用完毕后项目结构如下:

     

    6.单元测试项目里面UnitTest1这个类的名字取得太难看了,我们把名字改为ProgramTest,表明这是在测试Program类。改完如下:

    using System;
    using Microsoft.VisualStudio.TestTools.UnitTesting;
    
    namespace UnitTestDemoTest
    {
        [TestClass]
        public class ProgramTest
        {
            [TestMethod]
            public void TestMethod1()
            {
            }
        }
    }

    7.一个好的测试方法。应该在最基本的功能,参数上验证程序的正确性,单元测试应该测试最基本的单元,在此基础上,可以测试一些系统中最基本的功能点。

    系统中最基本的功能点

     

    8.可以这样理解,一个方法必须具有TestMethod特性,且其所属的类具有TestClass特性,那么这个方法才会被VS承认为一个单元测试方法。

    如果没有上面的两个特性中的一个,编译生成是没有任何问题的。但是VS不会把其作为一个单元测试方法。

     

    9.依次点击VS的菜单栏测试--> 窗口-->测试资源管理器,可以打开测试资源管理器。

     

     

     

    10.测试资源管理器里面会显示当前解决方案里面的所有单元测试。说明白点就是这里只显示符合要求的方法。

    你可能会说,为什么上面的图里面什么都没显示,TestMethod特性和TestClass特性现在不是都有吗?

    原因是你还没有生成程序集就可以看到测试资源管理器中显示了TestMethod1:

     

    11.我们要清楚我们创建单元测试的初衷:是用工具帮助我们测试软件的质量、稳定性、性能等等。VS在这里就充当了工具的作用。

     

    12.回到命名的问题,很明显TestMethod这个名字太难看了,我们把它改成AddTest表示这是在测试Add方法。

     UnitTestDemoTest()
    {
        [TestClass]
        public class ProgramTest
        {
            [TestMethod]
            public void AddTest()
            {
            }
        }
    }

    13.截止目前,我们已经建立了一个可以执行的测试框架,虽然没有起到什么作用,但是测试已经可以执行了。

    执行测试的方法之一是:右键点击需要测试的【单元测试】方法的名称,选择运行:

     

    运行测试之后,可以在测试资源管理器中查看测试的结果:

     

    执行单元测试的方法有很多,这些需要我们在不断的学习中去体会。

     

    14.接下来我们做一点有意义的事情。改进AddTest方法:

    if(!m_email.Contains("@"))
    {

    throw new ArgumentException(); //抛
    }

     

    新建单元测试在解决方案上新建项目-》托管测试项目在需要进行c语言测试运行测试可以看到测试通过。

     

     

    17.最后,注意在单元测试中,VSTS自动为我们生成了测试的骨架,如果还在使用***.Inconclusive。表明这是个未经测试的。详情参考如上。

     

  • 相关阅读:
    系统开发——页面跳转函数的书写
    PC 端自动化最佳方案
    access 点滴
    调用outlook发邮件
    mac安装vmware fusion后设置vmnet8上网
    Gin框架国内安装教程
    mac下一些vscode的初始化设置和使用
    Mac: 使用SDK切换gradle版本
    transfer.sh -- 使用 curl 从命令行上传文件并返回下载地址的文件分享服务(可自架服务端)
    使用ffmpeg转码,解决IDM从youtube下下来的视频在机顶盒上放不出声音问题(使用GPU加速)
  • 原文地址:https://www.cnblogs.com/menghuide/p/5303478.html
Copyright © 2020-2023  润新知