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做单元测试的更多相关文章

  1. spring junit 做单元测试,报 Failed to load ApplicationContext 错误

    spring junit 做单元测试,报 Failed to load ApplicationContext 错误. 查找了好一会,最后发现.@ContextConfiguration(locatio ...

  2. 使用python做你自己的自动化测试--对Java代码做单元测试 (2)-导入第三方jar包裹

    使用Jython对Java做单元测试,当然,为了测试开发java代码.这涉及到引入第三包的问题,如何导入第三方的包? 您可以使用http://blog.csdn.net/powerccna/artic ...

  3. 使用karma+jasmine做单元测试

    目的 使用karma和jasmine来配置自动化的js单元测试. Karma和Jasmine Karma是由Angular团队所开发的一种自动化测试工具.链接:http://karma-runner. ...

  4. 使用MS Test做单元测试

    声明:本篇博客翻译自:http://www.c-sharpcorner.com/article/unit-testing-with-ms-tests-in-c-sharp/ 写在翻译之前: 依然清晰的 ...

  5. 持续集成之单元测试篇——WWH(讲讲我们做单元测试的故事)

    持续集成之单元测试篇--WWH(讲讲我们做单元测试的故事) 前言 临近上线的几天内非重大bug不敢进行发版修复,担心引起其它问题(摁下葫芦浮起瓢) 尽管我们如此小心,仍不能避免修改一些bug而引起更多 ...

  6. xcode 5 使用 XCTest 做单元测试

    xcode 5 使用 XCTest 做单元测试 什么是单元测试,请看 百度百科 单元测试 一:在xcode5 之前,我们新建项目时,可以选择是否集成单元测试:如今在xcode5,我们新建立的项目默认就 ...

  7. Web项目如何做单元测试

    你可能会用单元测试框架,python的unittest.pytest,Java的Junit.testNG等. 那么你会做单元测试么!当然了,这有什么难的? test_demo.py def inc(x ...

  8. 基于Springboot+Junit+Mockito做单元测试

    前言 前面的两篇文章讨论过< 为什么要写单元测试,何时写,写多细 >和<单元测试规范>,这篇文章介绍如何使用Springboot+Junit+Mockito做单元测试,案例选取 ...

  9. EnvironmentPostProcessor怎么做单元测试?阿里P7解答

    简介 从Spring Boot 1.3开始,我们可以在应用程序上下文刷新之前使用EnvironmentPostProcessor来自定义应用程序的Environment.Environment表示当前 ...

随机推荐

  1. MySQL学习【第十三篇日志管理】

    一.MySQL日志类型 日志文件 选项  文件名/表名称   程序 错误日志 --log-error   host_name.err N/A 常规日志 --general_log host_name. ...

  2. 接口测试jemeter使用

    使用jemeter5时要先添加环境变量,需要有JDK1.8及以上版本支持.这里主要对接口测试做一些说明. 以上就是常见的设置问题.在window上我们通常是不需要改动配置文件的,如果要在生产上执行测试 ...

  3. JavaScript中使用比较多的两种创建对象的方式

    1.使用组合模式创建对象 原型模式创建对象适合封装方法,构造方法模式创建对象适合封装属性 组合方法缺点:将构造方法和原型分开写 <script type="text/javascrip ...

  4. 'express'不是内部或外部命令, 也不是可运行的程序, 或批处理文件

    1. npm install -g express-generator 安装新的express框架2. express -h 错误提示: 'express'不是内部或外部命令, 也不是可运行的程序, ...

  5. Codeception (安装)

    来源:http://codeception.com/install 注意:打开Codeception的官网需要FQ 1. 下载 下载地址:http://codeception.com/thanks 或 ...

  6. bzoj1901&zoj2112&cogs257 Dynamic Rankings(动态排名系统)

    bzoj1901&zoj2112&cogs257 Dynamic Rankings(动态排名系统) cogs zoj bzoj-权限 题解 bzoj和zoj都是骗访问量的233,我没有 ...

  7. springmvc 使用 response 的注意事项以及解决500 空指针异常找不到 response 的方法

    使用注解方式在类中(Controller)来装载request时,是可以正常使用request的(必须在启动时才注入,所以不支持热部署),但是同样使用这种方式在已经装载了 request的情况下装载  ...

  8. MAVEN相关文章

    Maven入门指南① :Maven 快速入门及简单使用 Maven入门指南② :Maven 常用命令,手动创建第一个 Maven 项目 Maven入门指南③:坐标和依赖 Maven入门指南④:仓库 M ...

  9. 【redis的搭建】centos6.4下搭建redis

    说明:本文内容参考自一些资料,如有雷同,还请见谅. 部分参考: http://blog.csdn.net/su377486/article/details/51803616 http://blog.c ...

  10. 深入解析QML引擎, 第4部分: 自定义解析器

    原文 QML Engine Internals, Part 4: Custom Parsers ——————————————————————————————————————————— 上一篇 绑定类型 ...