zoukankan      html  css  js  c++  java
  • 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的单元测试,我掌握了进行单元测试的的基础方法,在错误中成长,学会了不少东西,争取在这之后快速的根据别人的博客学会更多的测试技术(比如一个类在运行时还要引用新的文件,那么依赖项还是要进行修改),也让我意识到了自学是进步最快的方法,多读别人的博客可能就会学会很多东西,因此要虚心好学。

  • 相关阅读:
    Android Gradle Plugin指南(五)——Build Variants(构建变种版本号)
    文件内容操作篇clearerr fclose fdopen feof fflush fgetc fgets fileno fopen fputc fputs fread freopen fseek ftell fwrite getc getchar gets
    文件操作篇 close creat dup dup2 fcntl flock fsync lseek mkstemp open read sync write
    嵌入式linux应用程序调试方法
    version control system:git/hg/subversion/cvs/clearcase/vss。software configruation management。代码集成CI:Cruisecontrol/hudson/buildbot
    最值得你所关注的10个C语言开源项目
    如何记录linux终端下的操作日志
    CentOS 5.5 虚拟机安装 VirtualBox 客户端增强功能
    sizeof, strlen区别
    C/C++嵌入式开发面试题
  • 原文地址:https://www.cnblogs.com/puddingcat/p/8620310.html
Copyright © 2011-2022 走看看