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

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

相关推荐
7***533415 小时前
Rust错误处理模式
开发语言·后端·rust
4***149016 小时前
Rust系统工具开发实践指南
开发语言·后端·rust
UVM_ERROR17 小时前
硬件设计实战:解决Valid单拍采样失效问题(附非阻塞赋值与时序对齐核心要点)
驱动开发·fpga开发·github·芯片
5***790021 小时前
Rust在区块链智能合约中的安全实践
rust·区块链·智能合约
q***d1731 天前
Rust在网络中的协议栈
开发语言·网络·rust
星释1 天前
Rust 练习册 88:OCR Numbers与光学字符识别
开发语言·后端·rust
星释1 天前
Rust 练习册 75:ETL与数据转换
开发语言·rust·etl
python百炼成钢1 天前
28.嵌入式 Linux LED 驱动开发实验
linux·运维·驱动开发
ndjnddjxn1 天前
Rust学习
开发语言·学习·rust
月光技术杂谈1 天前
实战:C驱动框架嵌入Rust模块的互操作机制与完整流程
c语言·开发语言·rust·ffi·跨语言·bindgen·互操作