TODO
The Book 原文的 12.4. 采用测试驱动开发完善库的功能 比较长,为了方便练习我们把它分为若干个步骤,每个步骤前进一小步,这是更符合人类大脑的学习方式。
Step 10
测试驱动开发(Test Driven Development, TDD)的模式,是指先写出期望的功能的测试,然后再写出真实能用的代码。这也算是一种目标管理法吧。
测试驱动开发 (TDD) 是一个软件开发技术,它遵循如下步骤:
- 编写一个失败的测试,并运行它以确保它失败的原因是你所期望的。
- 编写或修改足够的代码来使新的测试通过。
- 重构刚刚增加或修改的代码,并确保测试仍然能通过。
- 从步骤 1 开始重复!
本节先写一个测试结构,主要是测试未来要写的一个 search 函数的功能。
查看提示
练习手打测试代码的结构
#[cfg(test)] mod tests { use super::*;
#[test]
fn test1() {
// --snip--
assert_eq!(
expected_result,
myFunction()
);
}
}
未来要完成的函数的签名为: search(query, content) -> Vec<&str>
Step 10 answer
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn one_result() {
let query = "duct";
let contents = "\
Rust:
safe, fast, productive.
Pick three.";
assert_eq!(
vec!["safe, fast, productive."],
search(query, contents)
);
}
}