1.单元测试任务
目的:测试已编写好的函数,给已编写好的函数喂数据,看看函数的逻辑是不是都用上了
途径:看已有的test.cc https://km.sankuai.com/page/174256108,玩转Google开源C++单元测试框架Google Test系列
其他:静态测试cppcheck已测试成功,动态测试Valgrind还没整。
Q:evaluator_test.cc里调用了一些planning_test的函数 后面需要进行的test与planning_test有关吗,需不需要把planning_test给搞明白? 从planning中拿到想要的数据
Q:使用数据平台查到的数据能不能下载下来在本地播放。 能,脚本已完成
Q:pb.text从哪里来 代码中加几行,将配置参数输出到pb.text,使用rerun 加载record
2.断言
常用断言:
-
ASSERT_* 系列的断言,当检查点失败时,退出当前函数(注意:并非退出当前案例)。 -
EXPECT_* 系列的断言,当检查点失败时,继续往下执行。 数值型检查
布尔型检查
3.事件机制
三种事件机制,方便我们在事件之前和事件之后做一些操作。
1.全局事件
2.TestSuite事件
3.TestCase事件
-
SetUp()方法在每个TestCase之前执行 -
TearDown()方法在每个TestCase之后执行
在编写测试案例时,我们需要使用TEST_F这个宏,第一个参数必须是我们上面类的名字,代表一个TestCase。
class FooCalcTest:public testing::Test
{
protected:
virtual void SetUp()
{
m_foo.Init();
}
virtual void TearDown()
{
m_foo.Finalize();
}
FooCalc m_foo;
};
TEST_F(FooCalcTest, HandleNoneZeroInput)
{
EXPECT_EQ(4, m_foo.Calc(12, 16));
}
TEST_F(FooCalcTest, HandleNoneZeroInput_Error)
{
EXPECT_EQ(5, m_foo.Calc(12, 16));
}
优秀的相关博客:
玩转Google开源C++单元测试框架Google Test系列(gtest)(总)
|