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学习【第十三篇日志管理】
一.MySQL日志类型 日志文件 选项 文件名/表名称 程序 错误日志 --log-error host_name.err N/A 常规日志 --general_log host_name. ...
- 接口测试jemeter使用
使用jemeter5时要先添加环境变量,需要有JDK1.8及以上版本支持.这里主要对接口测试做一些说明. 以上就是常见的设置问题.在window上我们通常是不需要改动配置文件的,如果要在生产上执行测试 ...
- JavaScript中使用比较多的两种创建对象的方式
1.使用组合模式创建对象 原型模式创建对象适合封装方法,构造方法模式创建对象适合封装属性 组合方法缺点:将构造方法和原型分开写 <script type="text/javascrip ...
- 'express'不是内部或外部命令, 也不是可运行的程序, 或批处理文件
1. npm install -g express-generator 安装新的express框架2. express -h 错误提示: 'express'不是内部或外部命令, 也不是可运行的程序, ...
- Codeception (安装)
来源:http://codeception.com/install 注意:打开Codeception的官网需要FQ 1. 下载 下载地址:http://codeception.com/thanks 或 ...
- bzoj1901&zoj2112&cogs257 Dynamic Rankings(动态排名系统)
bzoj1901&zoj2112&cogs257 Dynamic Rankings(动态排名系统) cogs zoj bzoj-权限 题解 bzoj和zoj都是骗访问量的233,我没有 ...
- springmvc 使用 response 的注意事项以及解决500 空指针异常找不到 response 的方法
使用注解方式在类中(Controller)来装载request时,是可以正常使用request的(必须在启动时才注入,所以不支持热部署),但是同样使用这种方式在已经装载了 request的情况下装载 ...
- MAVEN相关文章
Maven入门指南① :Maven 快速入门及简单使用 Maven入门指南② :Maven 常用命令,手动创建第一个 Maven 项目 Maven入门指南③:坐标和依赖 Maven入门指南④:仓库 M ...
- 【redis的搭建】centos6.4下搭建redis
说明:本文内容参考自一些资料,如有雷同,还请见谅. 部分参考: http://blog.csdn.net/su377486/article/details/51803616 http://blog.c ...
- 深入解析QML引擎, 第4部分: 自定义解析器
原文 QML Engine Internals, Part 4: Custom Parsers ——————————————————————————————————————————— 上一篇 绑定类型 ...