一、前言

gtest提供了多种事件机制,非常方便我们在案例之前或之后做一些操作。总结一下gtest的事件一共有3种:

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

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

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

二、全局事件

要实现全局事件,必须写一个类,继承testing::Environment类,实现里面的SetUp和TearDown方法。

1. SetUp()方法在所有案例执行前执行

2. TearDown()方法在所有案例执行后执行

 
class  FooTest :  public  testing::Test {
  protected :
   static   void  SetUpTestCase() {
    shared_resource_  =   new  玩转Google开源C++单元测试框架Google Test系列(gtest)之三 - 事件机制_C++ ;
  }
   static   void  TearDownTestCase() {
    delete shared_resource_;
    shared_resource_  =  NULL;
  }
   //  Some expensive resource shared by all tests.
   static  T *  shared_resource_;
};
 
在编写测试案例时,我们需要使用TEST_F这个宏,第一个参数必须是我们上面类的名字,代表一个TestSuite。