在Visual Studio2015中使用单元测试

所谓的单元测试(Unit Test),就是对软件的一些模块进行测试以检查其正确性和可靠性,这些模块可以是一个类或者是一个方法等。在Visual studio中,这十分容易实现。

打开Visual studio,文件->新建->项目,在此演示的是为通用Windows平台创建单元测试,因此展开Visual C#->Windows->通用->单元测试应用(通用Windows)。如图,

这里单元测试的项目名为UnitTest4Demo

创建完成后,为了使条理清晰,我们在解决方案中新建一个类库(ClassLibrary),将要测试的方法放在类库中,而UnitTest4Demo调用放在类库中的待测试方法。

右击解决方案->添加->新建项目->类库(通用Windows),如图

类库取名为ClassLibrary4Test

创建完成后,解决方案管理器里应类似下图

刚刚已经说了,类库里面放待测试方法,UnitTest4Demo负责调用并测试类库中的方法,因此UnitTest4Demo应引用ClassLibrary4Test。右击UnitTest4Demo下的引用->添加引用->勾选ClassLibrary4Test,如图

确定后,UnitTest4Demo下的引用应类似下图,注意:红线的部分就是刚刚添加的对类库的引用

现在,在类库ClassLirary4Test中的Class1.cs中写个方法,简单起见,就让这个方法返回个0

1   public class Class1
2    {
3         public static int ReturnZero()
4         {
5             return 0;
6         }
7     }

接着,在UnitTest4Demo中UnitTest.cs中的TestMethod1方法中调用此函数,如图

在这个UnitTest1类中,第一点,我们注意到UnitTest1被添加了TestClass属性类,方法TestMethod1被添加了TestMethod属性类,这就是用来单元测试的类和函数与一般的类和函数不同之处,这就告诉了Visual Studio我这个函数是用来测试的,Visual Studio就会将这个带有TestClass属性的类下的,带有TestMethod属性的方法放到测试资源管理器中(测试资源管理器展开方法:菜单栏->测试->窗口->测试资源管理器)

第二点就是这个函数里面就写了一句话,Assert是用于单元测试“断言”的类,即我输入一些参数(当然此示例没有输入参数),如果方法运行正确我“断言”应得到的结果,如果不符,Visula studio在测试后会给出相关的信息,这就达到了测试的效果。当然这个类有很多的重载,参见MSDN:Assert类

我们会注意到,此时测试资源管理器空空如也,并没有TestMehod1方法,这是我们没有生成解决方法的原因,现在生成解决方案:菜单栏->生成->生成解决方案

生成之后,测试资源管理器中会出现TestMehod1方法,如图

下面执行测试,右击测试单元管理器中的TestMethod1->运行选定的测试

稍等片刻,将会出现通过测试。

至此,一个简单的单元测试完成了。

你可以在单元测试中测试更多,更复杂的方法,下面就展示一个稍微复杂一些的用于测试通用应用的网络通信的示例。

在ClassLibrary4Test类库中新建一个HttpHelper类,类中写个用于Get请求的方法。

 1    public class HttpHelper
 2     {
 3         /// <summary>
 4         /// Send Get request and retrieve the response as a string
 5         /// </summary>
 6         /// <param name="url">url</param>
 7         /// <returns>response</returns>
 8         public static async Task<string> SendGetRequest(string url)
 9         {
10             HttpClient httpClient = new HttpClient();
11             Uri uri = new Uri(url);
12             HttpResponseMessage response = new HttpResponseMessage();
13             string httpResonseBody = string.Empty;
14             try
15             {
16                 response = await httpClient.GetAsync(uri);
17                 response.EnsureSuccessStatusCode();
18                 httpResonseBody = await response.Content.ReadAsStringAsync();
19             }
20             catch
21             { }
22             return httpResonseBody;
23         }
24     }

在UnitTest4Demo的UnitTest.cs中新写个方法TestMothod_Http,调用刚写的SendGetRequest方法。

1     [TestMethod]
2         public async Task TestMethod_Http()
3         {
4             string url = "http://mywebapidemo.azurewebsites.net/api/Default";
5             string response = await HttpHelper.SendGetRequest(url);
6             Assert.AreEqual("Hello,World!", response.Replace("\"", ""));
7
8         }

生成解决方案,和刚刚一样,测试资源管理器中在生成后悔出现TestMethod_Http,测试之,可以顺利通过测试。

时间: 2024-10-21 21:57:29

在Visual Studio2015中使用单元测试的相关文章

Visual Studio 中的单元测试 UNIT TEST

原文:Visual Studio 中的单元测试 UNIT TEST 注:本文系作者原创,可随意转载,但请注明出处.如实在不愿注明可留空,强烈反对更改原创出处. TDD(Test-Driven Development) 测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论.TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码.单元测试是最基本的测试步骤.位于整个产品开发流程V模型的最底部.大致如图,在各种开发流程中RA&PSD完成后,无需底层基础,

Visual Studio中UnitTesting单元测试模板代码生成

         在软件研发过程中,单元测试的重要性直接影响软件质量.经验表明一个尽责的单元测试方法将会在软件开发的某个阶段发现很多的Bug,并且修改它们的成本也很低.在软件开发的后期阶段,Bug的发现并修改将会变得更加困难,并要消耗大量的时间和开发费用.无论什么时候作出修改都要进行完整的回归测试,在生命周期中尽早地对软件产品进行测试将使效率和质量得到最好的保证.在提供了经过测试的单元的情况下,系统集成过程将会大大地简化.开发人员可以将精力集中在单元之间的交互作用和全局的功能实现上,而不是陷入充

visual studio中创建单元测试

1 打开  工具--自定义 2 选择 上下文菜单--编辑器上下文菜单|代码窗口 3 在这里我们可以看到“创建单元测试”这个菜单了,将它移到运行测试菜单下面 4 关闭VS并重启 重启后再对着类名,点击右键,发现上下文菜单中已经出现了“创建单元测试”按钮,但它是灰色的,并不能使用.但我们离成功不远了. 重启很重要,如果不重启,菜单出不来. 5 解决方案中右键,添加--新建项目,添加一个单元测试项目. 如图: 6 右键单元测试项目,添加--单元测试 7. 哈哈,此时大功告成,你再返回非测试项目项目中,

Python 在Visual studio 中做单元测试进行TDD开发

Unit Tests Steve Dower edited this page on 14 Jul · 3 revisions Pages 38 Home Azure Remote Debugging AzureSDK Bottle and Azure Table Storage on Azure Bottle and MongoDB on Azure Browsing Code Using PTVS Build Instructions for PTVS Cloud Project Code

Visual Studio2015 (VS2015)简体中文版 安装教程(在Win 8.1 32位系统中)

VS2015简体中文版安装 导航 介绍 解决安装先决条件 安装 VS2015 创建桌面快捷方式 启动 VS2015 命令启动VS2015 配置 VS2015 启动完成 MSDN安装 启动MSDN Visual Studio的功能添加和删除 Visual Studio的卸载 补一张安装完成的 介绍    返回顶部 由于安装在不同的操作系统中会遇到不同错误的提示 所以,不会在本篇文章中介绍 Visual Studio2015 在不同操作系统的安装方法. 如果在安装过程中遇到了问题 请在百度中搜索相关

Visual Studio2015下连接管理Global Azure Database

说到vistual studio相信大家已经不陌生了,当然对于开发人员来说.同时又说到windows azure的部分服务的部署,我们可以使用Visual Studio2015连接到windows azure,然后创建部分房屋.现在很多人应该用到了vistual studio2013,但是我是微软的粉丝.微软只要更新出新产品都会迫不及待的取尝试.现在微软vistual studio更新到了2015了,功能就不说了,需要大家自己去官网下载使用.在此我下载了vistual studio2015最新版

【Unity游戏开发】浅谈Unity游戏开发中的单元测试

一.单元测试的定义与作用 单元测试定义:单元测试在传统软件开发中是非常重要的工具,它是指对软件中的最小可测试单元进行检查和验证,一般情况下就是对代码中的一个函数去进行验证,检查它的正确性.一个单元测试是一段自动化的代码,这段代码调用被测试的工作单元,之后对这个单元的单个最终结果的某些假设进行检验.单元测试使用单元测试框架编写,并要求单元测试可靠.可读并且可维护.只要产品代码不发生变化,单元测试的结果是稳定的.(百度的) 单元测试可以让你在软件开发的早期阶段发现 Bug,而不必到集成测试的时候才发

Visual Studio2015发布web站点到windows azure Cloud Service(PAAS)

我们上一篇文章介绍了,通过visual studio2015发布站点到windows azure的VM(Microsoft Vsitual Machines)下,那是所谓的IAAS方式,今天呢.我们使用visural studio2015发布站点到windows azure 的Cloud Services,这就是PAAS服务模式.PaaS是Platform-as-a-Service的缩写,意思是平台即服务.把服务器平台作为一种服务提供的商业模式.而计算机时代相应的服务器平台或者开发环境作为服务进

Visual Studio2015发布WebSites到Mirosoft Vistual Machines(IAAS)

上一节我们介绍了通过Visual Studio2015如何连接到Windows Azure Portal,今天呢我们就介绍如何使用Vistual Studio 2015 发布一个web站点到Windows Azure VM,当然我们也知道通过Vs发布web站点到windows azure一共有三种方式:1. 通过visual studio2015发布到windows azure的websites:2. 通过visual studio2015发布到windows azure的vm下 --是一个典型