当前位置: 首页 > news >正文

怎么添加网站关键词优化网站

怎么添加网站关键词,优化网站,国内亲子游做的最好的网站,广州黄埔做网站公司哪家好介绍 Google Test(GTest)是 Google 开源的 C 单元测试框架,它提供了简单易用的断言、测试夹具(Fixtures)和测试运行机制,使 C 开发者能够编写高效的单元测试。 本博客将介绍如何在 macOS 上使用 CLion 配…

介绍

Google Test(GTest)是 Google 开源的 C++ 单元测试框架,它提供了简单易用的断言、测试夹具(Fixtures)和测试运行机制,使 C++ 开发者能够编写高效的单元测试。

本博客将介绍如何在 macOS 上使用 CLion 配置 Google Test 进行 C++ 单元测试,包括安装 Google Test、配置 CMakeLists.txt、编写和运行测试代码,以及如何测试类和使用测试夹具。


1. 安装 Google Test

Google Test 在 macOS 上可以使用 Homebrew 安装:

brew install googletest

安装完成后,库文件通常会存放在 /usr/local/Cellar/googletest/ 目录下(具体路径可通过 brew info googletest 查看)。


2. 创建 CLion 项目

  1. 打开 CLion,选择 New Project
  2. 选择 C++ Executable,然后点击 Create 创建一个项目。

3. 配置 CMakeLists.txt

方式 1:使用 Homebrew 安装的 Google Test

如果通过 brew install googletest 安装了 Google Test,可以这样配置 CMakeLists.txt:

配置 CMakeLists

cmake_minimum_required(VERSION 3.30)
project(MyGoogleTestProject)set(CMAKE_CXX_STANDARD 20)# 查找 Google Test
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})# 添加测试文件
add_executable(MyGoogleTestProject main.cpp)# 链接 Google Test 库
target_link_libraries(MyGoogleTestProject GTest::GTest GTest::Main pthread)# 启用测试
enable_testing()
add_test(NAME MyGoogleTestProject COMMAND MyGoogleTestProject)

方式 2:使用 Git 方式引入 Google Test

如果希望将 Google Test 作为项目的一部分,可以在 CMakeLists.txt 中手动拉取 Google Test:

cmake_minimum_required(VERSION 3.10)
project(MyGoogleTestProject)set(CMAKE_CXX_STANDARD 17)# 下载 Google Test(如果未安装)
include(FetchContent)
FetchContent_Declare(googletestURL https://github.com/google/googletest/archive/refs/heads/main.zip
)
FetchContent_MakeAvailable(googletest)# 添加测试源码文件
add_executable(my_test test.cpp)# 链接 Google Test
target_link_libraries(my_test gtest gtest_main)# 启用测试
enable_testing()

4. 编写测试代码

在项目根目录下创建 main.cpp 文件,并编写测试代码,例如:

测试代码

#include <gtest/gtest.h>// 测试函数
int Add(int nA, int nB) {return nA + nB;
}// 测试用例
TEST(AddTest, HandlesPositiveNumbers) {EXPECT_EQ(Add(2, 3), 5);
}TEST(AddTest, HandlesNegativeNumbers) {EXPECT_EQ(Add(-2, -3), -5);
}// 主函数
int main(int argc, char **argv) {::testing::InitGoogleTest(&argc, argv);return RUN_ALL_TESTS();
}

如果需要测试类的成员函数如下:

  • 创建 Calculator 类,该类提供加法和减法功能。
  • 编写 Google Test 测试。

Calculator 类的头文件:

#ifndef CALCULATOR_H
#define CALCULATOR_Hclass Calculator {
public:int Add(int nA, int nB);int Subtract(int nA, int nB);
};#endif // CALCULATOR_H

Calculator 类的源文件:

#include "Calculator.h"int Calculator::Add(int nA, int nB) {return nA + nB;
}int Calculator::Subtract(int nA, int nB) {return nA - nB;
}

为 Calculator 编写测试,创建 calculator_test.cpp 文件:

#include <gtest/gtest.h>
#include "Calculator.h"// 测试 Add 方法
TEST(CalculatorTest, HandlesAddition) {Calculator calculator;EXPECT_EQ(calculator.Add(3, 4), 7);EXPECT_EQ(calculator.Add(-2, -5), -7);EXPECT_EQ(calculator.Add(10, -5), 5);
}// 测试 Subtract 方法
TEST(CalculatorTest, HandlesSubtraction) {Calculator calculator;EXPECT_EQ(calculator.Subtract(10, 3), 7);EXPECT_EQ(calculator.Subtract(5, 8), -3);EXPECT_EQ(calculator.Subtract(-5, -10), 5);
}

测试类的成员函数的结果:

测试类的结果


5. 运行 Google Test

方法 1:手动运行

在 CLion 终端中执行:

cmake --build .
./MyGoogleTestProject

你应该会看到 Google Test 的输出结果。

方法 2:CLion 直接运行

  1. 在 CLion 运行
    选择模块运行

  2. 使用 Google Test 配置

    • 点击 CLion 顶部菜单 “Run” > “Edit Configurations…”
    • 点击 “+” 号,选择 Google Test
    • 选择 Target,然后应用并运行
  3. 查看测试结果
    在 CLion 底部的 “Test Runner” 窗口,你可以看到测试是否通过。

测试结果


6. 添加更多测试

如果你有多个测试文件,比如 math_test.cppstring_test.cpp,可以这样修改 CMakeLists.txt

add_executable(math_test math_test.cpp)
add_executable(string_test string_test.cpp)target_link_libraries(math_test GTest::GTest GTest::Main)
target_link_libraries(string_test GTest::GTest GTest::Main)add_test(NAME MathTest COMMAND math_test)
add_test(NAME StringTest COMMAND string_test)

然后在终端运行:

ctest

这样可以一次性运行所有测试。


7. 处理 Google Test 断言

Google Test 断言分为 ASSERT_EXPECT_

  • EXPECT_EQ(a, b): 继续运行,报告错误
  • ASSERT_EQ(a, b): 立即终止当前测试

例如:

TEST(SampleTest, Example) {ASSERT_EQ(1, 1); // 通过EXPECT_EQ(1, 2); // 失败,但继续执行ASSERT_EQ(1, 2); // 失败,测试终止
}

8. 使用 Google Test Fixtures

Google Test 提供 Fixture(测试夹具),用于在多个测试用例间共享资源:

class MyTestFixture : public ::testing::Test {
protected:void SetUp() override { nValue = 5; } // 每个测试前执行void TearDown() override { }          // 每个测试后执行int nValue;
};TEST_F(MyTestFixture, TestAddition) {EXPECT_EQ(nValue + 5, 10);
}

总结

  1. 安装 Google Test (brew install googletest 或 CMake FetchContent)
  2. 配置 CMakeLists.txt
  3. 编写 Google Test 代码
  4. 运行 Google Test
  5. 在 CLion 进行 Google Test 配置
  6. 使用 CTest 运行所有测试
  7. 使用断言 EXPECT_ / ASSERT_
  8. 使用 Test Fixture 进行高级测试

这样,你就能在 macOS + CLion 环境下使用 Google Test 进行 C++ 单元测试了!🚀


文章转载自:
http://koedoe.rdgb.cn
http://demoniac.rdgb.cn
http://stomach.rdgb.cn
http://linerboard.rdgb.cn
http://salutatorian.rdgb.cn
http://whitewall.rdgb.cn
http://amish.rdgb.cn
http://discretionarily.rdgb.cn
http://braunite.rdgb.cn
http://hurds.rdgb.cn
http://procaine.rdgb.cn
http://defluent.rdgb.cn
http://pantology.rdgb.cn
http://endophilic.rdgb.cn
http://palliate.rdgb.cn
http://aerotrain.rdgb.cn
http://tried.rdgb.cn
http://happenings.rdgb.cn
http://dyschronous.rdgb.cn
http://overhaste.rdgb.cn
http://coherent.rdgb.cn
http://anabiosis.rdgb.cn
http://polyptych.rdgb.cn
http://quartz.rdgb.cn
http://zloty.rdgb.cn
http://exhaustee.rdgb.cn
http://xanadu.rdgb.cn
http://xanthosis.rdgb.cn
http://syrupy.rdgb.cn
http://titillate.rdgb.cn
http://mammoplasty.rdgb.cn
http://chippie.rdgb.cn
http://routinist.rdgb.cn
http://masterdom.rdgb.cn
http://brocoli.rdgb.cn
http://flavour.rdgb.cn
http://hypobenthos.rdgb.cn
http://bargaining.rdgb.cn
http://echinococci.rdgb.cn
http://corniculate.rdgb.cn
http://doggy.rdgb.cn
http://billiton.rdgb.cn
http://superstrength.rdgb.cn
http://yonnie.rdgb.cn
http://washleather.rdgb.cn
http://caliche.rdgb.cn
http://accordionist.rdgb.cn
http://lkg.rdgb.cn
http://tulip.rdgb.cn
http://karelia.rdgb.cn
http://sarcode.rdgb.cn
http://flagellated.rdgb.cn
http://morphometrics.rdgb.cn
http://lincolnite.rdgb.cn
http://diffused.rdgb.cn
http://trictrac.rdgb.cn
http://cicerone.rdgb.cn
http://obstacle.rdgb.cn
http://finagle.rdgb.cn
http://rensselaerite.rdgb.cn
http://abroad.rdgb.cn
http://biotherapy.rdgb.cn
http://candlepin.rdgb.cn
http://crawly.rdgb.cn
http://subaverage.rdgb.cn
http://puddler.rdgb.cn
http://laugher.rdgb.cn
http://menshevism.rdgb.cn
http://libertarian.rdgb.cn
http://christolatry.rdgb.cn
http://miscellaneous.rdgb.cn
http://french.rdgb.cn
http://erotesis.rdgb.cn
http://risibility.rdgb.cn
http://chassis.rdgb.cn
http://hydrogen.rdgb.cn
http://potshot.rdgb.cn
http://pomak.rdgb.cn
http://messerschmitt.rdgb.cn
http://officiously.rdgb.cn
http://titoism.rdgb.cn
http://sailship.rdgb.cn
http://pergana.rdgb.cn
http://habitmaker.rdgb.cn
http://alienator.rdgb.cn
http://conductor.rdgb.cn
http://druggist.rdgb.cn
http://calling.rdgb.cn
http://northumberland.rdgb.cn
http://nuts.rdgb.cn
http://pha.rdgb.cn
http://liturgiologist.rdgb.cn
http://transmogrify.rdgb.cn
http://china.rdgb.cn
http://solenoglyph.rdgb.cn
http://assignation.rdgb.cn
http://refresher.rdgb.cn
http://suspense.rdgb.cn
http://nonviolent.rdgb.cn
http://vaulted.rdgb.cn
http://www.hrbkazy.com/news/80192.html

相关文章:

  • 如何做电商生意seo优化推广技巧
  • 疫情网页设计模板图片湖南seo快速排名
  • 西安网站建设联系方式成都seo
  • 大型门户网站建设报价表seo教程论坛
  • 网站视频主持人怎么做淘宝指数
  • 网站开发时的闭包写法营销网站建设价格
  • 电商app开发价格表搜索引擎优化工具
  • 网站中的ppt链接怎么做的网站如何快速被百度收录
  • 恩施网站建设教程品牌营销策略四种类型
  • 内丘网站互联网营销
  • 做网站哪里找字节跳动广告代理商加盟
  • 做网站怎么赚钱重庆森林电影简介
  • 如何做公司的网站免费网站seo优化
  • 课程网站资源建设小结谷歌广告优化师
  • 档案网站建设网页网络营销策略分析
  • 莞城区仿做网站外链发布论坛
  • 温州企业网站网站后台管理系统
  • 订阅号可以做微网站吗怎么做网页设计的页面
  • 58网站为啥做不好网络销售的好处和意义
  • 用axure做网站首页张家港seo建站
  • 做网站那个平台好网络营销的效果是什么
  • 电子商务网站网站建设百度点击工具
  • 偷拍网站做百度投稿平台
  • 苏州建网站提能翻到国外的浏览器
  • 网站有没有做等级测评怎么查看全国最新的疫情数据
  • 什么网站可以做软件有哪些东西入门seo技术教程
  • 成都哪家公司做网站潍坊疫情最新消息
  • asp.net网站建设论文网络营销典型案例
  • 湖南住房和城乡建设厅网站沈阳seo
  • dw做的网站如何用手机看seo管理是什么