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

【Rust】使用 Rust 语言实践完整的 TDD(测试驱动开发)流程

写个简单的TDD练练手。

需求描述

我们要实现一个简单的功能:计算两个整数的和。

步骤 1:编写失败的测试用例

首先,创建一个新的 Rust 项目,并用 VS Code 打开:

cargo new test_tdd --lib
cd .\test_tdd\
code .

默认的库文件里包含了一个加法的实现,这里直接把实现改成报错:

pub fn add(left: usize, right: usize) -> usize {
    // left + right
    unimplemented!()
}

如果你没有,那我把完整的代码贴出来:

pub fn add(left: usize, right: usize) -> usize {
    // left + right
    unimplemented!()
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn it_works() {
        let result = add(2, 2);
        assert_eq!(result, 4);
    }
}

运行测试:

cargo test

不出意外,测试失败了:
测试失败

步骤 2:编写代码使测试通过

修改add函数的实现,让测试能够通过。

pub fn add(left: usize, right: usize) -> usize {
    left + right
}

测试通过

步骤 3:重构代码

此处无需重构了,足够简洁。


http://www.kler.cn/a/610516.html

相关文章:

  • RK3568 驱动和设备匹配的几种方法
  • STM32F103_LL库+寄存器学习笔记04 - GPIO设置输出模式
  • 6.4考研408数据结构图论核心知识点深度解析
  • 《Oracle DBA入门实战:十大高频问题详解与避坑指南》
  • 卷积神经网络 - AlexNet
  • DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加行拖拽排序功能示例3,TableView16_03 拖拽视觉反馈示例
  • [算法笔记]一段数量变化的无序区间的中位数查找--双堆法
  • 【区块链安全 | 第六篇】NFT概念详解
  • 最大字段和问题 C++(穷举、分治法、动态规划)
  • 构建稳健的机器学习系统:应对数据偏移挑战
  • 使用ros_gz_bridge将gz topic转换成ros2 topic
  • 数据库——MySQL基础操作
  • 文件上传绕过的小点总结(5)
  • 使用 Chromedp 监听网页请求和响应
  • 0 - 1 背包问题介绍与 C# 代码实现
  • 再探带权并查集
  • [ComfyUI] SDXL Prompt Styler 自定义节点的作用解析
  • 使用 curl_cffi 解决 Web 抓取中的 TLS/JA3 指纹识别方法
  • 科技快讯 | 韩国科学家研发出全球首款仿生液态机器人;OpenAI推出GPT-4o图像生成功能
  • Tomcat相关的面试题