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

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

相关推荐
雾削木6 小时前
树莓派 ESPHome 固件编译与烧录全攻略(解决超时与串口识别问题)
驱动开发
superman超哥19 小时前
Serde 性能优化的终极武器
开发语言·rust·编程语言·rust serde·serde性能优化·rust开发工具
sayang_shao1 天前
Rust多线程编程学习笔记
笔记·学习·rust
春日见1 天前
win11 分屏设置
java·开发语言·驱动开发·docker·单例模式·计算机外设
鸿乃江边鸟1 天前
Spark Datafusion Comet 向量化Rust Native--读数据
rust·spark·native·arrow
硬汉嵌入式1 天前
基于Rust构建的单片机Ariel RTOS,支持Cortex-M、RISC-V 和 Xtensa
单片机·rust·risc-v
DarkAthena1 天前
【GaussDB】手动编译不同python版本的psycopg2驱动以适配airflow
驱动开发·python·gaussdb
松涛和鸣2 天前
DAY66 SPI Driver for ADXL345 Accelerometer
linux·网络·arm开发·数据库·驱动开发
嵌入式郑工2 天前
# RK3576 平台 RTC 时钟调试全过程
linux·驱动开发·ubuntu
GS8FG2 天前
针对Linux,RK3568平台下,I2C驱动的一点小小的领悟
linux·驱动开发