GoogleTest
1. gTest简介
- gTest是google开发团队开发的一款针对C++代码的测试框架,可以帮助我们更快,更好地写出C++测试代码。
- gTest支持Linux,Windows,Mac等多个OS平台上运行
- gTest不仅仅只支持单元测试,还支持其他多种类型的测试。
2. 好的测试代码具有哪些特点
- 测试应该是独立且可重复的
- 测试应该能被很好的组织且能清晰的反映测试代码的结构
- 测试应该是可移植且可被复用的
- 当测试用例失败时可以提供足够的错误信息
- 应使得测试代码书写者能仅关注测试的内容即可
- 测试代码运行足够快
3. gTest测试框架有哪些优势
- gTest通过在不同的对象上运行每个测试用例来隔离测试,当某一个测试用例运行失败时,gTest允许单独运行该测试以进行快速调试。
- gTest将相关的测试进行分组组成测试集,以便它们可以共享数据且便于维护
- gTest可以被多种编译器编译后运行于多种OS平台
- gTest不会在遇到第一个运行失败的测试就停止运行,而是会跳过当前测试而继续下一个测试,或者你也可以设置报告非致命错误,从而使得可以在单次运行-编辑-编译循环中检测到多个错误
- gTest可以自动检测跟踪所有定义的测试,并且不需要你列举即可运行它们
- gTest可以使你重复使用测试间的共享资源,只需要一次创建/释放的代价,不需要使测试之间相互依赖
4. gTest命名规范
名词 | old gTest | ISTQB | new gTest |
---|---|---|---|
测试用例 | TEST | TEST CASE | TEST |
测试集 | TEST CASE | TEST SUITE | TEST SUITE |
- 测试用例: 使用特定的输入值执行特定的程序路径并验证结果
- 测试集: 将相关的测试分组
5. 基本概念描述
- 使用gTest写测试代码时,必然会使用到断言,它是一种检查条件是否为真的语句。
- 断言的结果有三种:成功、非致命错误、致命错误
- 若发生致命错误,程序会跳出该功能函数,否则正常运行
- 如果测试崩溃或者断言结果错误,那么该测试用例失败,否则测试用例成功