gtest中,TEST_F与TEST的区别
来源:互联网 发布:网络施工资质要求 编辑:程序博客网 时间:2024/04/29 05:03
TEST_F与TEST的区别是,TEST_F提供了一个初始化函数(SetUp)和一个清理函数(TearDown),在TEST_F中使用的变量可以在初始化函数SetUp中初始化,在TearDown中销毁,并且所有的TEST_F是互相独立的,都是在初始化以后的状态开始运行,一个TEST_F不会影响另一个TEST_F所使用的数据,下面是一个例子。
需要测试的代码:
- //A.h
- #ifndef A_H
- #define A_H
- class A
- {
- private:
- int _a;
- public:
- A( int a );
- ~A( );
- void add( int a );
- int getA( );
- };
- #endif
- A.cpp
- #include "A.h"
- A::A( int a ){
- this->_a = a;
- }
- A::~A( ){
- }
- void A::add( int a ){
- this->_a += a;
- }
- int A::getA( ){
- return this->_a;
- }
//A.h#ifndef A_H#define A_Hclass A{private: int _a;public: A( int a ); ~A( ); void add( int a ); int getA( );};#endifA.cpp#include "A.h"A::A( int a ){ this->_a = a;}A::~A( ){}void A::add( int a ){ this->_a += a;}int A::getA( ){ return this->_a;}
测试代码:
A_test.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include "A.h"
#include <
gtest
/gtest.h>
class A_test : public testing::Test {
protected:
A* _p_a;
virtual void SetUp( ){ //初始化函数
this->_p_a = new A( 1 );
}
virtual void TearDown( ){ //清理函数
delete this->_p_a;
}
};
//第一个测试,参数A_test是上面的那个类,第二个参数FirstAdd是测试名称
TEST_F( A_test,FirstAdd ){
EXPECT_EQ( 1,_p_a->getA( ) );
_p_a->add( 3 );
EXPECT_EQ( 4,_p_a->getA( ) );
}
//第二个测试
TEST_F( A_test,SecondAdd ){
EXPECT_EQ( 1,_p_a->getA( ) );
_p_a->add( 5 );
EXPECT_EQ( 6,_p_a->getA( ) );
}
/*
上面的两个测试都是在SetUp函数执行后的状态下执行,也就是说在执行任意一个TEST_F时 _p_a->_a 的值都是初始值1
*/
主函数(同上一个例子相同)
1
2
3
4
5
6
7
8
main.cpp
#include <
gtest
/gtest.h>
int main(int argc, char * argv[])
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
return 0;
}
编译后执行的结果如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
$ gtester main
TEST: main... (pid=13965)
[==========] Running 2 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 2 tests from A_test
[ RUN ] A_test.FirstAdd
[ OK ] A_test.FirstAdd
[ RUN ] A_test.SecondAdd
[ OK ] A_test.SecondAdd
[----------] Global test environment tear-down
[==========] 2 tests from 1 test case ran.
[ PASSED ] 2 tests.
PASS: main
(本文出自:http://tech.ddvip.com/2009-02/1234225491107952.html)
- gtest中,TEST_F与TEST的区别
- gtest的TEST_F与TEST的区别
- gtest中TEST和TEST_F使用的区别
- gtest Test_F 和Test 区别
- TEST 和 TEST_F 区别
- TEST_F VS Test
- GTest源码剖析(三)——TEST_F宏
- gtest学习---最简单的test
- gtest 中Setup TearDown SetUpTestCase和TearDownTestCase 的区别
- gtest中小项目test
- gtest(Google Test)使用
- 定义变量var test与test的区别
- gtest框架的介绍与应用
- gtest框架的介绍与应用
- Linux下gtest的安装与使用
- gtest框架的介绍与应用
- Linux下CMake工程中gtest&gmock的安装与使用
- [SoftwareTesting][UnitTest][初级]VC++ 2008 Google Test:gtest 安装与配置
- 深入剖析Tomcat类加载机制
- Struts2中的valuestack
- 2014百度校园招聘笔试题(长春站)
- CentOS 6.3(64位)上配置 Redmine
- dp--uva116
- gtest中,TEST_F与TEST的区别
- C#中的IntPtr类型
- linux环境变量(好好看)
- 手工完全恢复(非归档模式下,日志没有被覆盖)
- C工程
- 进程,线程,程序 概念和联系
- java基础语法
- hdu 4751 Divide Groups bfs (2013 ACM/ICPC Asia Regional Nanjing Online 1004)
- C++重载