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

写个简单的TDD练练手。

需求描述

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

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

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

bash 复制代码
cargo new test_tdd --lib
cd .\test_tdd\
code .

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

rust 复制代码
pub fn add(left: usize, right: usize) -> usize {
    // left + right
    unimplemented!()
}

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

rust 复制代码
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);
    }
}

运行测试:

bash 复制代码
cargo test

不出意外,测试失败了:

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

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

rust 复制代码
pub fn add(left: usize, right: usize) -> usize {
    left + right
}

步骤 3:重构代码

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

相关推荐
一次旅行14 小时前
【AI工具】Rust-Based CLI:用 xargs 和并行加速你的 Linux 日常
linux·开发语言·rust
梦醒沉醉18 小时前
6、Rust程序设计语言——包、crates与模块
rust
花褪残红青杏小19 小时前
Rust图像处理第16节-曼德博集合 Mandelbrot:用一行公式画出无限细节
rust·webassembly·图形学
Arman376819 小时前
rusty-cat × 阿里云 OSS 直传直下实战
rust·ai编程
临风细雨21 小时前
从 Bun 的 Rust 重写,看 C# 如何重建 AI 基础设施层
人工智能·rust·c#
x-cmd21 小时前
Linus 9 年前说「模糊测试有效」——今天已成 OSS-Fuzz 时代铁律
linux·ai·rust·开源·自动化·agent·安全性测试
CodeForWater1 天前
RUST设置临时环境变量在PowerShell
rust
独孤留白1 天前
从C到Rust:Trait Deref + DerefMut 智能指针与自动解引用
rust
程序员爱钓鱼1 天前
Rust 数据类型详解:整数、浮点数、布尔、字符、元组和数组
后端·rust
梦帮科技1 天前
Rust+Tauri+EVM:构建下一代内存安全级数字版权(DRM)主权音频网络与跨链金融系统的技术实践与全景架构
网络·安全·架构·rust·区块链·音视频·web3.py