【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:重构代码

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

相关推荐
执念斩长河12 小时前
gin学习
驱动开发·学习·gin
techdashen15 小时前
性能比拼: Rust vs C++
java·c++·rust
无名之逆15 小时前
[特殊字符] Hyperlane:Rust 高性能 Web 框架的终极选择 [特殊字符]
服务器·开发语言·前端·网络·后端·http·rust
sukalot21 小时前
Windows 图形显示驱动开发-WDDM 2.7功能-MCDM KM 驱动程序实现指南(二)
驱动开发
王伯爵1 天前
5G核心网(5GC)中TDD(时分双工)和FDD(频分双工)
5g·tdd
少年、潜行1 天前
STM32F103C8T6移植DMP解算MPU9250
驱动开发·stm32·嵌入式硬件
Source.Liu1 天前
【学Rust写CAD】14线性插值函数(加入color.rs)
rust·cad
Blasit1 天前
GD32 ISP下载程序(串口烧录)
c语言·驱动开发·单片机·嵌入式硬件·程序人生
Yeauty2 天前
Rust 与 FFmpeg 实现视频水印添加:技术解析与应用实践
rust·ffmpeg·音视频
王小小海2 天前
【笔记分享】NCS/Zephyr USB MSC实现方法介绍
驱动开发·笔记·单片机·嵌入式