Fork me on GitHub Fork me on GitHub

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。表明这是个未经测试的。详情参考如上。

 

posted @ 2016-03-21 20:21  menghuide  阅读(328)  评论(2编辑  收藏  举报