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表示当前 ...
随机推荐
- flAbsPath on /var/lib/dpkg/status failed 解决 Cydia 红字
越狱之后抹掉所有数据,然后再使用 doubleH3lix 越狱成功后,打开 Cydia 会提示如下错误: flAbsPath on /var/lib/dpkg/status failed - real ...
- Redis之Redis主从复制
概念: 主从复制就是主机数据更新后,根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主. 配置: (1)“一主二仆”策略 准备三台redis服务器 ...
- C# 依据鼠标坐标取网页内成员坐标.ie
C# 根据鼠标坐标取网页内成员坐标.ie 有时候你需要后台获取ie浏览器 鼠标所在位置的元素坐标,然而你使用屏幕坐标是不可行的 所以我们需要把坐标转换成浏览器内坐标 然后再通过elementFromP ...
- jquery.ajax的方法使用
$.ajax({ type: 'post', url:"{:U('Admin/Shop')}", data:{id:id}, dataType: "json", ...
- [笔记] FireDAC DataSet 导入及导出 JSON
刚好需要将 FireDAC DataSet (TFDDataSet, TFDQuery...) 转成 JSON,网上找了一圈,原来从 XE6 开始就支持这个功能了: 储存: DataSet1.Save ...
- Msql浅析-基础命令(二)
篇幅简介 一.Msql数据类型 1.整型 tinyint, 占 1字节 ,有符号: -128~127,无符号位 :0~255 smallint, 占 2字节 ,有符号: -32768~32767无符 ...
- python学习第二天 -----2019年4月17日
第二周-第02章节-Python3.5-模块初识 #!/usr/bin/env python #-*- coding:utf-8 _*- """ @author:chen ...
- python 时间time模块介绍和应用
1.其中format_string 类型的时间和struct_time之间可以转换,timestamp时间戳可以和struct_time之间进行转化,但是时间戳和格式化时间是不能直接转换的. time ...
- DVWA:环境搭建
0x01 安装PHP集成环境 我这里用的是phpstudy 2016,这个使用起来比较方便.下面是现在的最新版. http://www.phpstudy.net/phpstudy/phpStudy20 ...
- python 3下对stm32串口数据做解析
1.最近有个想做一个传感器数据实时显示的上位机,常规的数据打印太频繁了,无法直观的看出数据的变化. python下的上位机实现起来简单一点,网上找了一些python界面Tkinter相关资料和pyth ...