测试自动化 2011/06/04 - 2

IDEA-Java自动生成单元测试 此文首发于我的Jekyll博客:zhang0peter的个人博客 最近在写单元测试,感觉写Mock写烦了,于是想看看有没有现成的spring项目的单元测试生成工具。 网上找到了一个Java单元测试回答的集合:Automatic generation of unit tests for Java? - Stack Overflow Squaretest 官网:Squaretest - Java Unit Test Generator for IntelliJ IDEA 安装方法是从IDEA插件仓库中安装Sq 阅读详情

读《玩转GTest》http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html

 

0. 杂问

Q:如何让VC6运行gtest1.6?

 

1. 生成并使用gtest库

 

* 生成库

# ./configure

#./make

 

注:所有库文件在${home}/lib/.libs目录中

 

* 使用库


Makefile文件

 

[root@localhost frank-study]# make clean
rm -f FooTest  gtest.a gtest_main.a *.o
[root@localhost frank-study]# make
g++ -I../include -g -Wall -Wextra -c ./Foo.cpp
g++ -g -Wall -Wextra -I../include  -c -o FooTest.o FooTest.cpp
g++ -I../include -g -Wall -Wextra -lpthread -lgtest_main -L../lib/.libs Foo.o FooTest.o -o FooTest
[root@localhost frank-study]# ./FooTest
./FooTest: error while loading shared libraries: libgtest_main.so.0: cannot open shared object file: No such file or directory
[root@localhost frank-study]#

 

处理方法:将libgtest_main.so.0拷至/usr/lib

[root@localhost .libs]# cp libgtest_main.so.0 /usr/lib

[root@localhost frank-study]# ./FooTest
Running main() from gtest_main.cc
[==========] Running 2 tests from 2 test cases.
[----------] Global test environment set-up.
[----------] 1 test from FooTest
[ RUN      ] FooTest.HandleNoneZeroInput
FooTest.cpp:6: Failure
Value of: Foo(30,18)
  Actual: 6
Expected: 5
[  FAILED  ] FooTest.HandleNoneZeroInput (4 ms)
[----------] 1 test from FooTest (7 ms total)

[----------] 1 test from FooTest2
[ RUN      ] FooTest2.HandleNoneZeroInput
[       OK ] FooTest2.HandleNoneZeroInput (0 ms)
[----------] 1 test from FooTest2 (3 ms total)

[----------] Global test environment tear-down
[==========] 2 tests from 2 test cases ran. (32 ms total)
[  PASSED  ] 1 test.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] FooTest.HandleNoneZeroInput

 1 FAILED TEST

 

Q:如何系统地安装.so文件?

Q:why gtest的make install不work ?

Q:why static lib libgtest_main.a不能link?从文件大小上看,libgtest_main.a未能build进FooTest

 

2. 《初识gtest》

* TEST(FooTest, HandleNoneZeroInput)

[TestCaseName,TestName],而我对这两个参数的定义是:[TestSuiteName,TestCaseName]

 

 

3. 《断言》

* ASSERT_* 系列的断言,当检查点失败时,退出当前测试

* EXPECT_* 系列的断言,当检查点失败时,继续往下测试

 

例子:

 

[root@localhost frank-study]# vi FooTest.cpp
#include <gtest/gtest.h>
extern int Foo(int, int);

TEST(FooTest, HandleNoneZeroInput) {
        EXPECT_EQ(2, Foo(4,10)) << "Hi!";
        EXPECT_EQ(5, Foo(30,18)) << "Hello! 1";
        //ASSERT_EQ(5, Foo(30,18)) << "Assert Failed !" ;

        EXPECT_EQ(5, Foo(30,18)) << "Hello! 2";
        EXPECT_EQ(5, Foo(30,18)) << "Hello! 3";
}

TEST(FooTest2, HandleNoneZeroInput) {
        EXPECT_EQ(2, Foo(4,10));
        EXPECT_EQ(6, Foo(30,18)) << "Hi ther!";
}

 

问题:throw

 

 int Foo(int a, int b) {
        if (a==0 || b==0) {
                throw "don't do that";
        }
        int c=a%b;
        if(c==0) {
                return b;
        }
        return Foo(b,c);
}

 

[ RUN      ] FooTest3.HandleZeroInput
FooTest.cpp:20: Failure
Expected: Foo(0,5) throws an exception of type char*.
  Actual: it throws a different type.

                                       ^ WHY ???


[  FAILED  ] FooTest3.HandleZeroInput (6 ms)

 

3. 《事件机制》

 

1. 全局的,所有案例执行前后。

 

 

[root@localhost frank-study]# make
g++ -g -Wall -Wextra -I../include  -c -o FooTest.o FooTest.cpp
FooTest.cpp: In function ‘int main(int, char**)’:
FooTest.cpp:26: 错误:expected type-specifier before ‘FooEnvironment’
FooTest.cpp:26: 错误:expected `)' before ‘FooEnvironment’
FooTest.cpp:26: 错误:不能从 ‘int*’ 转换到 ‘testing::Environment*’,为实参 ‘1’(属于 ‘testing::Environment* testing::AddGlobalTestEnvironment(testing::Environment*)’)

A:FooTest.cpp中,需要定义FooEnvironment类,如下:

#include "FooEnvironment.cpp"

 

[root@localhost frank-study]# make
g++ -g -Wall -Wextra -I../include  -c -o FooTest.o FooTest.cpp
FooEnvironment.cpp: In member function ‘virtual void FooEnvironment::SetUp()’:
FooEnvironment.cpp:4: 错误:‘out’ 不是 ‘std’ 的成员
FooEnvironment.cpp: In member function ‘virtual void FooEnvironment::TearDown()’:
FooEnvironment.cpp:8: 错误:‘out’ 不是 ‘std’ 的成员
make: *** [FooTest.o] 错误 1

A:应该为std::cout

 

[root@localhost frank-study]# make
make: *** 没有规则可以创建“FooEnvironment.o”需要的目标“Environment.cpp”。 停止。

A:规则中文件名错误,应该为FooEnvironment.cpp而非Environment.cpp

 

[root@localhost frank-study]# make
g++ -I../include -g -Wall -Wextra -c ./FooEnvironment.cpp
./FooEnvironment.cpp:3: 错误:‘testing’ 未声明
./FooEnvironment.cpp:3: 错误:expected `{' before ‘Environment’
./FooEnvironment.cpp:3: 错误:无效的函数声明

A:缺少#include <gtest/gtest.h>

 

2. TestSuite级别的,在某一批案例中第一个案例前,最后一个案例执行后。

3. TestCase级别的,每个TestCase前后

 

 

 

 

借助AI高效写出结构严谨、内容专业的课题申报书:10大核心模块拆解(附实用提示词) 在很多老师和科研人员眼中,写一份高质量的课题申报,确实是一件非常困难的事。难就难在不只是要说清楚写了什么研究内容,还要体现申报书的可行性和创新性。七哥除了自己写课题,也经常指导会员同仁使用高级学术版搞定课题的申报工作,摸索出了一套行之有效的借助AI申报课题的技巧,在这篇文章中,我将给大家点明课题申报书的10大核心模块的写作技巧,还会给大家一些提示词模板供大家参考,如果你也正准备申报课题,那么这篇文章一定不要错过!特别说明的是,提示词的使用并不是一蹴而就的,是专业思考的延伸和AI化专业表达,过程中需要多次的调 阅读详情

相关推荐

KUKA 虚拟调试实战——打通Simpro4.1与OfficeLite8.6的通信与实时控制链路

本文详细介绍了KUKA虚拟调试实战,重点解析如何打通Simpro4.1与OfficeLite8.6的通信与实时控制链路。通过环境搭建、权限配置、机器人型号匹配等关键步骤,帮助工程师高效完成机器人轨迹规划和PLC联锁逻辑验证,大幅降低真机调试风险。文章还提供了典型报错解决方案和实时控制优化技巧,适用于工业机器人仿真与培训场景。

weixin_30907935的博客 444

ROS踩坑|报错“没有规则可制作目标”

问题描述 使用catkin_make编译一个功能包,第一次编译由于编译的cpp文件命名与camkefile中的不一致,所以编译失败了。修改相应的名字之后再次编译还是失败。显示如下报错: make[2]:*** 没有规则可制作目标"auto_alignment/CMakeFiles/alignment_+server.dir/build"。停止 recipe for target 'auto_alignment/CMakeFiles/alignment_+server.dir/all' failed reci

JeSuisDavid的博客 1万+

手把手教你实现阿克曼ROS小车的运动控制

本文详细介绍了如何从零开始实现阿克曼ROS小车的运动控制。内容涵盖硬件搭建、STM32底层PID速度与舵机控制、ROS层阿克曼运动学模型解析,以及上下位机通信协议设计。通过手把手的代码示例和调试步骤,帮助机器人爱好者与开发者掌握将高级速度指令转化为小车具体动作的全流程,实现流畅的阿克曼转向控制。

weixin_29193259的博客 198

20200507_googletest

20200507_googletest 每日小知识 gtest是一个跨平台的C++测试用例框架,由谷歌公司发布。 一、相关术语 原计划是写一个测试strcpy的用例的,但发现googletest用起来需要花一些功夫,所以本篇就先整理googletest的内容。 googletest C++测试用例框架。 版本 本文使用googletest版本【1.8.1】。 VS使用VS2017,社区版本...

丰哥的专栏 541

Linux 命令之 locale -- 设置和显示程序运行的语言环境

文章目录命令介绍locale 设置规则使用详解(一)查看当前 locale 设置(二)查看当前系统所有可用 locale(三)设置系统的 locale 命令介绍 locale 是 Linux 系统中多语言环境的设置接口,在 Linux 中,使用 locale 命令来设置和显示程序运行的语言环境,locale 会根据计算机用户所使用的语言,所在国家或者地区,以及当地的文化传统定义一个软件运行时的语言环境。 通过 locale 来设置程序运行的不同语言环境,locale 由ANSI C提供支持。locale 的

liaowenxiong的博客 3万+

Proteus8.0仿真应用设计(九十一)基于STM32CubeMX、STM32F103C8T6 、FREERTOS、MCP41010(SPI接口)的8位数字电位器应用设计仿真

MCP41010是一款SPI接口的8位数字电位器。

zhusl6688的博客 558

没有规则可制作目标“/usr/local/lib/libserial.so问题解决

1.首先寻找现有的libserial.so文件,类似的找自己的.so文件 不断cd .. 回到根目录下,否则找不到(这一步很关键) sudo find / -name "libserial.so" -ls 2.建立软连接 根据自己的所在目录,以及缺失的目录建立文件的软连接即可 ln -s /opt/ros/melodic/lib/libserial.so /usr/local/lib/libserial.so ...

x1345689的博客 3978

【AUTOSAR SystemServices】AUTOSAR CP中Watchdog Manager模块技术解析

本文深入解析了AUTOSAR中的Watchdog Manager模块实现。该模块通过多层次监督机制(Alive/Deadline/Logical Supervision)确保系统安全运行,具备动态模式切换和分级故障处理能力。 关键实现包括: 数据结构设计:包含监督实体状态结构体(实时状态维护)、监督配置结构体(支持模式切换)和全局状态信息(系统级监控) 核心流程优化:初始化采用事务性设计,检查点处理通过条件编译优化,主监控循环采用流水线式并行处理 监督机制实现:Alive监督采用滑动窗口算法,Deadlin

1038

Linux下编译Google Test(gtest)附带的五个例子

2008-07-29 02:54:56|  分类: 默认分类|字号 订阅 在http://code.google.com/p/googletest下载到gtest-1.0.1,解压缩。 进入所在目录,如“~/gtest/”,进行编译: $ ./configure $ make 编译完成,进入例子所在目录“~/gtest/samples/”,分别编译例子

nuoshueihe的专栏 1421

计算机视觉与深度学习 | 基于Matlab的多特征融合可视化指纹识别系统(附完整代码)

此系统展示了一个完整的指纹识别流程,实际应用中可以根据需求进一步优化算法,如改进方向场计算、增加脊线频率特征、使用更精确的匹配算法等。

尘世冰封的专栏 360

影楼精修-肤色统一算法解析

本文介绍了影楼精修中肤色统一算法的实现方案,并以像素蛋糕软件为例进行详细分析。肤色统一旨在通过调整人像照片中皮肤区域的颜色,使其看起来更加均匀一致。像素蛋糕软件提供了AI肤色统一和传统肤色统一两种功能,分别适用于不同需求。传统肤色统一算法通过皮肤分割、人脸检测、亮度统一和颜色统一等步骤,实现了对皮肤区域的精细调整。文章还提供了亮度统一的核心代码,并对比了传统算法与AI算法的效果,指出AI算法在自然度和亮度矫正方面表现更优。整体而言,本文为影楼精修中的肤色统一提供了实用的技术参考。

Trent1985的专栏 2065

玩转Google开源C++单元测试框架Google Test系列

http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html 前段时间学习和了解了下Google的开源C++单元测试框架Google Test,简称gtest,非常的不错。 我们原来使用的是自己实现的一套单元测试框架,在使用过程中,发现越来越多使用不便之处,而这样不便之处,gtest恰恰很好的解决了。 其实gtes

l799623787的专栏 3413

100天精通Python(数据分析篇)——第53天:初识pandas模块_基础介绍

一、初始pandas 1. 什么是pandas? 2. 为什么要学习pandas? 3. pandas的优势 4. 下载安装pandas 二、Pandas的数据类型 1. Series 2. DataFrame

努力让自己发光,对的人才能迎着光而来 17万+

测试自动化 2011/06/04 - 1

1. 再次捡起GTest 以前的老资料:http://blog.youkuaiyun.com/printf1998/archive/2011/01/02/6112922.aspx 新的资源:http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html   2. 运行GoogleTest Sample在VMware/Redhat ent

printf1998的专栏 642

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

测试自动化 2011/06/07 GMock

1. 杂问 仿gtest为VC6写的单元测试框架 http://blog.youkuaiyun.com/riag/category/115856.aspx 一篇关于gmock的导读文章:http://blog.youkuaiyun.com/learnhard/archive/2010/07/23/5757461.aspx   2. 下载 * svn checkout svn checkout http:/

printf1998的专栏 911

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

测试自动化 2011/06/05 - 1

读《玩转gtest》http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html   0. 杂问 一些关于测试覆盖tool的东东:http://www.cnblogs.com/coderzh/archive/2009/03/21/1418355.html   1. 事件:TestCase事件与Test事件   总结Tes

printf1998的专栏 512

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

自动化测试工具

QTP/UFT,自动化测试工具之一,可代替人工重复性的手动测试,主要用于回归测试和软件更新版本的测试。使用此工具时,需要事先确定好需要测试的功能,操作步奏,输入的数据和期望的输出。他提供了符合所有应用软件环境的功能测试和回归测试的自动化,采用关键字驱动的理念以简化测试用例的创建和维护。它主要可以测试用户的操作过程,对用户的屏幕操作流程进行录制,自动生成功能测试和回归测试用例。专业的测试者也可以通过

duag222的博客 546

http接口自动化测试框架实现

http接口自动化测试框架实现 作者:张元礼 http://blog.youkuaiyun.com/vincetest 一、测试需求描述 对服务后台一系列的http接口功能测试。 输入:根据接口描述构造不同的参数输入值 输出:XML文件 eg:http://xxx.com/xxx_product/test/content_book_list.jsp?listid=1 二、实现方法 1、选用Python脚本来驱动测试 2、采用Excel表格管理测试数据,包括用例的管理、测试数据录入、测试结果显示等等,

lln_fl的专栏 1297

自动化测试:selenium

http://blog.sina.com.cn/s/articlelist_1728839330_2_1.html WebDriver之modifier key:Key… (0/25)2013-03-27 15:00 selenium ie点击一个链接一直… (1/30)2013-03-27 14:43 selenium

rain的专栏 1407

RFT属于软件测试管理工具,IBM Rational FunctionalTester RFT 软件功能测试工具_FunctionalTester_领测软件测试网...

发表于:2016-11-17作者:石 芮, 王 莹, 和点击数:1614本文基于 IBM Rational Functional Tester 实现了高效的自动化测试日志框架,对自动化测试开发人员具有一定的借鉴意义。本文从日志展示和定制化角度说明了如何针对项目不同的人员和项目的..发表于:2011-12-09作者:娃娃点击数:1181助测试小组在软件应用程序中管理复杂的逻辑性。这篇文章介绍了一种基...

weixin_39928844的博客 1234

Android 日志自动分析,Android 自动化测试(monkeytest)异常日志分析

当前位置:我的异常网» Android»Android 自动化测试(monkeytest)异常日志分析Android 自动化测试(monkeytest)异常日志分析www.myexceptions.net网友分享于:2013-04-19浏览:248次Android 自动化测试(monkeytest)错误日志分析Panic DetailsBarcode: P366593898Device...

weixin_29777019的博客 502

WatiN——Web自动化测试(二)

利用WatiN进行自动化测试,并不仅仅的将代码堆放在一起就OK了,对于一个成熟的公司,有相对较为稳定的测试流程;那么对于我们来说,需要设计 一个较为清晰的结构才能应对测试流程和管理测试用例,如何设计测试用例的框架?比如测试一个用户注册然后登录,进入页面之后,再创建一条记录。因长的测试 流程中肯定有功能相似的代码部分,例如登录或者是新增一条记录。如何去编制cases?细分的原则又是什...

weixin_33781606的博客 78

QTP自动化测试之VBScript基础(下)

要想使用QTP进行自动化测试,必须了解VBScript这门语言,对于使用过ASP或VB开发的人来说,VBScript已经再熟悉不过了,但是没有接触过VBScript的同学也不要灰心,因为这门语言简单易学。 7. 条件语句 8. 循环语句 9. 过程 7. 条件语句 VBScript中可以使用以下条件语句: If…Then…Else语句Select Case语句 7.1. If

lykangjia的专栏 434

JUnit单元测试的jar包下载

JUnit 是一个用于在 Java 上编写和运行可重复的自动化测试的单元测试框架。它提供了一个强大的环境来编写、组织和执行自动化测试,确保代码的可靠性和可重复性。其用户友好的注解和断言方法促进了测试用例的开发和运行,使其成为专注于质量保证和测试驱动开发的 Java 开发人员的基础工具。

资源分享免费的博客 1047

[开题]flask框架医院门诊管理自动化实现ozk2v9(程序+论文+python)

程序界面:源码、数据库获取↓↓↓↓。

睿渊计算机毕业设计 1025

5年经验之谈 —— 功能测试和性能测试的区别是什么?

功能测试功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。功能测试也叫黑盒测试,只需要考虑测试各个功能是否实现,比如游戏的功能测试,首先测试游戏的各个功能是否符合需求,就是各个功能是否能正常使用,这也叫正向的测试。然后各个功能的反向测试,就是不按照使用说明书来使用,看看会不会出现预计外的问题,总的来说就是按照需求编写出来的测试用例,输入数据在预期结果和实际结果之间进行评测,进而提出更加使产品达到用户使用的要求。性能测试。

2401_85127928的博客 835
上一篇: 测试自动化 2011/06/04 - 1
下一篇: 测试自动化 2011/06/05 - 1
printf1998
博客等级 码龄16年 14粉丝 196原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值