VS2017中对C++的单元测试
安装Visual Studio 2017
由于平时都是用codeblock,因此电脑中没有装VS系列的IDE,就从安装开始吧

最开始安装的时候没有注意什么都没选,安装完了以后根本没有c++的编译器和各项组件............

上图就是啥都没安装...要不然怎么安装包只有一百多MB.....

历经千辛万苦终于装完了。那么下一步就开始单元测试吧。
对C++进行单元测试
首先先建立一个工程,分别编写cpp和头文件,下图是我刚开始编写的程序,仅仅写了cpp文件,没有自定义头文件,下面的代码是我后写的

最终cpp文件中的代码如下:
#include<iostream>
#include"test.h"
using namespace std;
int Cal::add(int x, int y)//返回两个变量的和
{
return x + y;
}
int Cal::sub(int x, int y)//返回两个变量的差
{
return x - y;
}
int main()
{
return 0;
}
最终头文件test.h中的代码如下:
class Cal {//计算类
public:
int add(int x, int y);
int sub(int x, int y);
};
确定代码无误后,右键点击“解决方案”->"添加"->“新建项目”,如下图所示

紧接着在弹出的页面选择“本机单元测试项目”

此时左侧的状态栏出现了单元测试的项目,“UnitTest1”

右键选中引用,点击“添加引用”,如下图所示

勾选需要引用的项目,也就是需要测试的项目

接下来开始编写测试程序,如下图所示

然后操作如下图,但是...........

去 世 了

经过一番不懈的查找努力终于找到了问题所在...没有引入需要测试项目的头文件.....下图为改正后的测试代码

那么再测试一次吧...应该没事了吧......
又 去 世 了

其实问题出在了这里...右键测试项目,然后选择属性

选择“链接器”->"输入"->"选择依赖项"

可以看到我输入的是需要测试项目的obj文件的路径,但是写的却是*.obj,相当于选择该文件夹下所有obj文件

但是打开对应的文件夹后,发现有两个obj文件.....原因是因为最早建立项目时使用了默认名称,但是为了引用成功我给改成了英文名...因此有两个obj文件,系统不确定到底是哪一个文件(你妹)

于是乎回去修改依赖项...改成确定的文件......

终 于 运 行 成 功 了

这里说一下,Assert::AreEqual函数是确定是否两个数相等的操作,如果两个数不相等,那么将不会通过测试,但是运行可以成功,如下图所示,3-5=-2,不满足的话就不能通过测试

总结
通过学习vs2017的单元测试,我掌握了进行单元测试的的基础方法,在错误中成长,学会了不少东西,争取在这之后快速的根据别人的博客学会更多的测试技术(比如一个类在运行时还要引用新的文件,那么依赖项还是要进行修改),也让我意识到了自学是进步最快的方法,多读别人的博客可能就会学会很多东西,因此要虚心好学。
VS2017中对C++的单元测试的更多相关文章
- 2019软件工程第二次作业(VS2017中对C++的单元测试)
建立工程,分别编写cpp和头文件 cpp文件中的代码如下: #include<iostream> #include"test.h" using namespace st ...
- unit vs2017基于nunit framework创建单元测试
unit vs2017基于nunit framework创建单元测试 一.简叙: 单元测试大型项目中是必备的,所以不可忽视,一个项目的成败就看是否有单元测试,对后期的扩展维护都带来了便利. 二.安装 ...
- 在Eclipse中使用JUnit4进行单元测试
在Eclipse中使用JUnit4进行单元测试(初级篇) 在Eclipse中使用JUnit4进行单元测试(中级篇) 在Eclipse中使用JUnit4进行单元测试(高级篇)
- 【Java】在Eclipse中使用JUnit4进行单元测试(初级篇)
本文绝大部分内容引自这篇文章: http://www.devx.com/Java/Article/31983/0/page/1 我们在编写大型程序的时候,需要写成千上万个方法或函数,这些函数的功能可能 ...
- XNA、FNA以及在VS2017中编写XNA
XNA是早期DX SDK支持的C#游戏开发环境,虽然现游戏开发大多是以Unity3D,Unreal 4为主,但是许多独立游戏开发者,特别是2D游戏,依然使用XNA进行开发, 纠其原因,猜测是C#开源且 ...
- [C#] VS2017中在某些目录下使用不了 .NET Core 2.0 问题的处理办法
作者: zyl910 一.缘由 最近遇到了一个奇怪的问题--明明已经在VS2017里装好了 .NET Core 2.0 SDK,且测试过新建一个 .NET Core 2.0控制台项目能成功使用.但是在 ...
- VS2017中 C# dll引用(C生成dll,C++生成dll)小结 - 简书
原文:VS2017中 C# dll引用(C生成dll,C++生成dll)小结 - 简书 dll引用小结 一.dll与应用程序 动态链接库(也称为DLL,即为“Dynamic Link Library” ...
- 在Eclipse中使用JUnit4进行单元测试(图文教程一)
在Eclipse中使用JUnit4进行单元测试 单元测试,JUnit4. 这两个有什么关系呢?这就好比(草)单元测试和(割草机).用这个JUnit4工具去辅助我们进行测试.其实不理解这个也没关系,听多 ...
- 在VS Code中对Python进行单元测试
在VS Code中对Python进行单元测试 Python扩展支持使用Python的内置unittest框架以及pytest和Nose进行单元测试.要使用pytest和Nose,必须将它们安装到当前的 ...
随机推荐
- HDU 4004 The Frog's Games(二分+小思维+用到了lower_bound)
The Frog's Games Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Others) ...
- python使用scikit-learn计算TF-IDF
1 Scikit-learn下载安装 1.1 简介 1.2 安装软件 2 TF-IDF基础知识 2.1 TF-IDF概念 2.2 举例说明计算 3 Scikit-Learn中计算TF-IDF 3.1 ...
- 租用游艇(简单区间dp)
租用游艇 时间限制: 1 Sec 内存限制: 128 MB提交: 1 解决: 1[提交][状态][讨论版][命题人:quanxing] 题目描述 长江游艇俱乐部在长江上设置了n 个游艇出租站1,2 ...
- linux中强大的screen命令
今天发现了一个“宝贝”,就是Linux的screen命令,对于远程登录来说,不仅提供了类似于nohup的功能,而且提供了我非常喜欢的“多个桌面”的功能. 平常开一个putty远程登录,经常需要在两个程 ...
- 双系统(Windows+Ubuntu)重装Ubuntu后,修复引导
重装Ubuntu后,重启机器,Windows系统消失了.进入BIOS修改启动顺序,Windows系统恢复了,但是,刚装好的Ubuntu没了,一开机,电脑自动进入Windows. 解决办法: 用装系统的 ...
- 六.jQuery源码分析之jQuery原型属性和方法
97 jQuery.fn = jQuery.prototype = { 98 constructor: jQuery, 99 init: function( selector, context, ro ...
- cpu真实核数
判断依据: 1.具有相同core id的cpu是同一个core的超线程. 2.具有相同physical id的cpu是同一颗cpu封装的线程或者cores. 英文版: 1.Physical id an ...
- JS表单常见表达式(正则)
整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$ 只能输入数字:"^[0-9]*$". 只能输入n位的数字:"^\d{n}$". 只能输入至少n ...
- 679. 24 Game
▶ 给出四个整数,求他们是否能加减乘除括号拼凑成 24 ● 代码,11 ms,正向枚举,推广性很强(nums 可以改为任意长度,也不限于拼凑 24 这个和),缺点是只能判定是否有解,不方便输出不重复的 ...
- 【CentOS 6.5】安装gcc-4.8.2和Qt5.2
因为CentOS6.5中gcc版本比较低.安装Qt5.2前先升级gcc. 首先下载gcc,附上百度盘地址:http://pan.baidu.com/s/1jGibvqY 解压安装包,并进入到解压文件夹 ...