CodeGym
AI Academy
促销
CodeGym University
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • 优先测试什么

    C++ SELF
    等级 37,课时 0
    我们来看看,如何在教学用 C++ 项目中选择最“划算”的第一批测试:为什么应该先从纯函数(输入 → 输出)、解析器(字符串 → 数据)和业务规则入手,而不是去检查 std::cout 的打印。我们将学习把 IO 与逻辑分离,使用 assert 快速起步,并为诸如 parse_int、 parse_command、 add_task 和 mark_done 这样的函数构建确定性的检查。
    可用
  • AAA: Arrange‑Act‑Assert 与 表格式用例集合

    C++ SELF
    等级 37,课时 1
    解析如何通过结构化的 AAA( Arrange → Act → Assert)和表格驱动(table‑driven)的用例集合,使单元测试更可读、更易扩展。通过 std::optional<int>、解析器 parse_amount() 和解析命令 "add 250 lunch" 的示例,我们学习如何把数据准备与动作和断言分离,避免像在 nullopt 上调用 value() 这样的陷阱,并添加诊断信息以便立即看出哪个用例失败。
    可用
  • Catch2 / doctest — 测试结构

    C++ SELF
    等级 37,课时 2
    我们来拆解 C++ 中基于 Catch2/doctest 的自动化测试是如何组织的:为什么需要测试框架而不是只用 assert, test runner 是如何工作的,以及为什么测试有“自己的” main;如何避免出现“两个 main”或“零个 main”; CHECK 和 REQUIRE 有什么区别;如何编写表格驱动测试并通过 INFO 添加上下文;以及如何通过一个小型 Expense Tracker 示例把“生产”代码与测试分离开来。
    可用
  • CTest — 将测试作为构建的一部分运行

    C++ SELF
    等级 37,课时 3
    解析为什么在 CMake 项目中需要 CTest,即便测试已经用 doctest/ Catch2 编写:什么是“以 exit-code 形式运行的测试”、如何通过 enable_testing() 接入测试并用 add_test 注册测试、如何从构建目录正确运行 ctest、在测试失败时查看输出以及如何按名称过滤测试集合。
    可用
  • CI 与流水线 configure → build → test

    C++ SELF
    等级 37,课时 4
    我们来讲解什么是 CI(持续集成),以及为何它的“语言”不是 YAML,而是进程的退出码( exit code): 0 表示成功,非 0 表示失败。通过 CMake/ CTest 的示例理解三个步骤 configure → build → test 的含义,构建本地迷你流水线并分析那些导致“本地通过”但在 CI 上变红的常见错误。
    可用
Learn
  • 注册
  • Java 课程
  • 任务帮助
  • 定价
  • Java 语法
社区
  • 用户
  • 文章
  • 论坛
  • 聊天
  • 成功故事
  • 动态
  • 联盟计划
Company
  • 关于我们
  • 联系方式
  • 评价
  • 媒体中心
  • CodeGym for EDU
  • 常见问题
  • 支持
CodeGymCodeGym 是一个从零开始学习 Java 编程的在线课程。该课程是初学者掌握 Java 的完美方式。它包含 1200+ 个带即时验证的任务,以及必要的 Java 基础理论。为了帮助你在学习中取得成功,我们实现了一系列激励功能:测验、编码项目、关于高效学习的内容,以及 Java 开发者职业相关内容。
关注我们
界面语言
English Deutsch Español हिन्दी Français Português Polski বাংলা
简体中文
मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
“程序员是培养出来的,不是天生的” © 2026 CodeGym
MastercardVisa
“程序员是培养出来的,不是天生的” © 2026 CodeGym