VS2015做单元测试
1.安装测试插件
2.新建测试用例
这里就用课堂练习找水王 作例子
写一个类waterKing.h和waterKing.cpp
- //idList.h
- #pragma once
- #include<iostream>
- using namespace std;
- class idList
- {
- private:
- int id[]; //发帖ID
- int waterKing; //当前水王
- int value = ; //当前水王水的可能性
- int num; //帖子数
- public:
- idList(int num,int id[]);
- ~idList();
- int searchwaterKing();
- };
- //idList.cpp
- #include "idList.h"
- idList::idList(int num, int id[])
- {
- if (num <= )
- {
- cout << "非法的输入";
- exit();
- }
- this->num = num;
- for (int i = ; i < num; i++) {
- this->id[i] = id[i];
- }
- }
- idList::~idList()
- {
- }
- int idList::searchwaterKing() //返回-1代表没有水王,否则返回水王的ID
- {
- if (num % ) //奇数
- {
- for (int i = ; i < num; i += )
- {
- if (value > ) //当前水王存在
- {
- if (id[i] == id[i + ])
- {
- if (id[i] == waterKing)
- {
- value += ;
- }
- else
- {
- value -= ;
- }
- }
- }
- else //当前水王不存在
- {
- if (id[i] == id[i + ])
- {
- waterKing = id[i];
- value += ;
- }
- }
- }
- if (value > )
- {
- if (id[] == waterKing)
- {
- value++;
- }
- else
- {
- value--;
- }
- }
- else
- {
- waterKing = id[];
- value = ;
- }
- }
- else //偶数
- {
- for (int i = ; i < num; i += )
- {
- if (value > ) //水王存在
- {
- if (id[i] == id[i + ])
- {
- if (id[i] == waterKing)
- {
- value += ;
- }
- else
- {
- value -= ;
- }
- }
- }
- else //水王不存在
- {
- if (id[i] == id[i + ])
- {
- waterKing = id[i];
- value += ;
- }
- }
- }
- }
- if (value > )
- {
- return waterKing;
- }
- else
- {
- return -;
- }
- }
写完代码之后记得编译一下,会在项目DEBUG目录下生成OBJ文件
3. 右击解决方案->"添加"->"新建项目"->"测试"->"托管测试项目"
新建之后再解决方案下就会出现一个刚刚新建的测试项目
在UnitTest.cpp下添上引用
在下面的[TestMethod]里编写自己的测试代码
- [TestMethod]
- void TestMethod1()
- {
- int list[] = {};
- idList test1(sizeof(list)/sizeof(int), list);
- int result = test1.searchwaterKing();
- Assert::AreEqual(result, );
- };
- [TestMethod]
- void TestMethod2()
- {
- int list[] = { ,, };
- idList test1(sizeof(list) / sizeof(int), list);
- int result = test1.searchwaterKing();
- Assert::AreEqual(result, );
- };
- [TestMethod]
- void TestMethod3()
- {
- int list[] = { ,,,, };
- idList test1(sizeof(list) / sizeof(int), list);
- int result = test1.searchwaterKing();
- Assert::AreEqual(result, );
- };
- [TestMethod]
- void TestMethod4() //该测试应该是不相等的
- {
- int list[] = { ,,, };
- idList test1(sizeof(list) / sizeof(int), list);
- int result = test1.searchwaterKing();
- Assert::AreNotEqual(result, -);
- };
- [TestMethod]
- void TestMethod5() //该测试应该是不相等的
- {
- int list[] = { ,,,, };
- idList test1(sizeof(list) / sizeof(int), list);
- int result = test1.searchwaterKing();
- Assert::AreNotEqual(result, -);
- };
右击测试项目->属性->链接器->输入->附加依赖项->编辑
添加自己刚刚编译生成的OBJ
然后就可以点击菜单栏的测试菜单,进行相关测试了
Assert::XXX的用法不是很了解,网上一些.NET的测试教程很多,
原文链接 http://www.cnblogs.com/xiaoyongwu/p/5289964.html
VS2015做单元测试的更多相关文章
- spring junit 做单元测试,报 Failed to load ApplicationContext 错误
spring junit 做单元测试,报 Failed to load ApplicationContext 错误. 查找了好一会,最后发现.@ContextConfiguration(locatio ...
- 使用python做你自己的自动化测试--对Java代码做单元测试 (2)-导入第三方jar包裹
使用Jython对Java做单元测试,当然,为了测试开发java代码.这涉及到引入第三包的问题,如何导入第三方的包? 您可以使用http://blog.csdn.net/powerccna/artic ...
- 使用karma+jasmine做单元测试
目的 使用karma和jasmine来配置自动化的js单元测试. Karma和Jasmine Karma是由Angular团队所开发的一种自动化测试工具.链接:http://karma-runner. ...
- 使用MS Test做单元测试
声明:本篇博客翻译自:http://www.c-sharpcorner.com/article/unit-testing-with-ms-tests-in-c-sharp/ 写在翻译之前: 依然清晰的 ...
- 持续集成之单元测试篇——WWH(讲讲我们做单元测试的故事)
持续集成之单元测试篇--WWH(讲讲我们做单元测试的故事) 前言 临近上线的几天内非重大bug不敢进行发版修复,担心引起其它问题(摁下葫芦浮起瓢) 尽管我们如此小心,仍不能避免修改一些bug而引起更多 ...
- xcode 5 使用 XCTest 做单元测试
xcode 5 使用 XCTest 做单元测试 什么是单元测试,请看 百度百科 单元测试 一:在xcode5 之前,我们新建项目时,可以选择是否集成单元测试:如今在xcode5,我们新建立的项目默认就 ...
- Web项目如何做单元测试
你可能会用单元测试框架,python的unittest.pytest,Java的Junit.testNG等. 那么你会做单元测试么!当然了,这有什么难的? test_demo.py def inc(x ...
- 基于Springboot+Junit+Mockito做单元测试
前言 前面的两篇文章讨论过< 为什么要写单元测试,何时写,写多细 >和<单元测试规范>,这篇文章介绍如何使用Springboot+Junit+Mockito做单元测试,案例选取 ...
- EnvironmentPostProcessor怎么做单元测试?阿里P7解答
简介 从Spring Boot 1.3开始,我们可以在应用程序上下文刷新之前使用EnvironmentPostProcessor来自定义应用程序的Environment.Environment表示当前 ...
随机推荐
- Mysql-表的基本操作
一 存储引擎介绍 二 表介绍 三 创建表 四 查看表结构 五 数据类型 六 表完整性约束 七 修改表ALTER TABLE 八 复制表 九 删除表 一 .存储引擎介绍 存储引擎即表类型,mysql根据 ...
- 新增时json类型报错
新增时出错:如下 实体类中字段类型没有对应上,vue页面中修改跳转页面的路径:使用params...
- ios中input输入无效
项目中一个登陆界面的input在安卓下可以输入,iOS下无法输入,经查询为 设置了-webkit-user-select:none;将其改为-webkit-user-select:auto;修正. 参 ...
- Redis对象类型
Redis对象类型 Redis基于基础的数据结构创建的对象: 字符串对象. 列表对象. 哈希对象. 集合对象 有序集合对象. 对象回收:Redis对象系统实现了基于引用计数技术的内存回收机制,当程序不 ...
- MySQL数据库实验:任务一 创建数据库和表
目录 任务一 创建数据库和表 [实训目的与要求] [实训原理] [实训步骤] 一.熟悉MySQL环境 二.利用MySQL命令行窗口创建数据库及表 三.利用界面工具创建数据库及表 任务一 创建数据库和表 ...
- 大数据分析系统Hadoop的13个开源工具
Hadoop是由Apache基金会开发的一个大数据分布式系统基础架构,最早版本是2003年原Yahoo!DougCutting根据Google发布的学术论文研究而来. 用户可以在不了解分布式底层细节的 ...
- 面试被问到IIC,总结。
Linux3.5内核中,IIC. i2c_add_driver i2c_register_driver a. at24cxx_driver放入i2c_bus_type的drv链表 并且从dev链表里取 ...
- Python3爬虫(十八) Scrapy框架(二)
对Scrapy框架(一)的补充 Infi-chu: http://www.cnblogs.com/Infi-chu/ Scrapy优点: 提供了内置的 HTTP 缓存 ,以加速本地开发 . ...
- WPF自定义命令
WPF的自定义命令实现过程包括三个部分,定义命令.定义命令源.命令调用,代码实现如下: public partial class MainWindow : Window { public MainWi ...
- 2017-2018-1 20155321 《信息安全系统设计基础》课堂实践——实现mypwd
2017-2018-1 20155321 <信息安全系统设计基础>课堂实践--实现mypwd 学习pwd命令 pwd命令:输出当前工作目录的绝对路径 还可通过man pwd具体查看pwd的 ...