1.2.C语言基础进阶——单元测试框架的开发

1.2.C语言基础进阶——单元测试框架的开发

第二天开始就很有难度了……

测试的意义

对于测试的理解:

  • 通过测试 ≠ 没有bug
  • 通过测试 =概率性正确

如何编写正确的程序

  1. 正确的代码风格(开发)
  2. 严谨的逻辑思维(开发)
  3. 防御式编程习惯(开发)
  4. 合理的测试用例(调试)

Google Test的使用范例

编译Google Test

github项目网址:googletest,本范例环境为Ubuntu16.04

首先clone下来项目git clone https://github.com/google/googletest

进入项目文件夹,首先新建build目录,用来构建工程。进入build目录,执行命令cmake ../,cmake利用CMakeLists.txt中构建规则生成Makefile文件,当前build目录下将会产生构建测试框架的内容文件,包括Makefile文件
直接执行make命令,将会完成google测试框架的编译(构建)过程,最后作为第三方模块,嵌入到自己的工程中
原版的执行不知道为什么会出错,老师那边的clone下来是可以的(已经修复,详情见文末)

在这里插入图片描述
其中定义部分位于build/lib目录下
在这里插入图片描述
声明部分位于googletest/googletest/include目录下

使用GoogleTest

首先建立自己的项目目录,并建立lib目录和include目录,复制定义cp googletest/build/lib/* lib/,复制声明cp -R googletest/googletest/include/* include/

之后新建自己的测试函数,以下为一个范例,其中有两个测试用例

#include <iostream>
#include <gtest/gtest.h>
using namespace std;

int add(int a, int b) {
   
    return a + b;
}
//一个测试用例
TEST(test, add) {
   
	//等于
    EXPECT_EQ(add(3, 4), 7);
    //等于
    EXPECT_NE(add(3, 4), 8);
    //大于
    EXPECT_GT(add(3, 4), 7);
    //小于
    EXPECT_LT(add(3, 4), 8);
    //大于等于
    EXPECT_GE(add(3, 4), 7);
    //小于等于
    EXPECT_LE(add(3, 4), 7);
}

TEST(test, add2) {
   
    EXPECT_EQ(add(3, 4), 7);
    EXPECT_NE(add(3, 4), 8);
    EXPECT_GT(add(3, 4), 6);
    EXPECT_LT(add
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值