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

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

相关推荐
hkhkhkhkh1231 天前
Linux设备节点基础知识
linux·服务器·驱动开发
盒马盒马2 天前
Rust:内部可变性 & 型变
开发语言·后端·rust
东哥很忙XH2 天前
python使用PyQt5开发桌面端串口通信
开发语言·驱动开发·python·qt
云水木石2 天前
Rust 语言开发的 Linux 桌面来了
linux·运维·开发语言·后端·rust
Source.Liu2 天前
【time-rs】解释://! Invalid format description(error/invalid_format_description.rs)
rust·time
fegggye2 天前
创建一个rust写的python库[signatures和错误处理]
开发语言·python·rust
Source.Liu2 天前
【time-rs】解释://! Indeterminate offset(error/indeterminate_offset.rs)
rust·time
福大大架构师每日一题2 天前
rust 1.92.0 更新详解:语言特性增强、编译器优化与全新稳定API
java·javascript·rust
坏一点2 天前
Yocto项目构建(3)——构建和部署树莓派镜像
linux·驱动开发·嵌入式硬件
红糖果仁沙琪玛2 天前
AD7616驱动开发-FPGA
驱动开发·fpga开发