看了一下sample4中没有什么新的东西,不过还是写一下sample4中的内容。
编译sample4的规则,在test/src/samples/CMakeLists.txt中最后添加以下两行:
add_executable(sample4_unittest sample4.cc sample4_unittest.cc)
target_link_libraries(sample4_unittest PUBLIC gtest gtest_main)
sample4的源文件
sample4源文件包含sample.h 和 sample4.cc 只在其中定义了一个Counter
类,其中该类的主要方法和成员如下:
int counter_; // 类内成员
int Increment(); // 返回counter_的值,并使成员counter_自增。
int Decrement(); // 返回counter_的值,并使成员counter_自减(且counter_的值最小为0)。
sample4_unittest的测试内容
unittest中定义了一个TEST其内容如下:
TEST(Counter, Increment) {
Counter c;
EXPECT_EQ(0, c.Decrement());
EXPECT_EQ(0, c.Increment());
EXPECT_EQ(1, c.Increment());
EXPECT_EQ(2, c.Increment());
EXPECT_EQ(3, c.Decrement());
}
没什么新的东西,不过貌似是在说明单个test中是可以保证测试语句逐条执行的,即单个test中测试语句之间可以存在依赖关系。
记得在sample1文档中说过,test的执行顺序是不能保证的,因此各个test之间不应该存在先后的依赖关系。