From f51582978fd9df8fb3fea920b9394847a4c963ae Mon Sep 17 00:00:00 2001 From: jackymao Date: Mon, 19 Sep 2022 18:35:36 +0800 Subject: [PATCH] start unit_test.md --- .../config.json" | 4 ++- .../unit_test.json" | 7 ++++++ .../unit_test.md" | 25 +++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 "data/1.rust\345\210\235\351\230\266/4.\346\265\213\350\257\225/1.\345\215\225\345\205\203\346\265\213\350\257\225/unit_test.json" create mode 100644 "data/1.rust\345\210\235\351\230\266/4.\346\265\213\350\257\225/1.\345\215\225\345\205\203\346\265\213\350\257\225/unit_test.md" diff --git "a/data/1.rust\345\210\235\351\230\266/4.\346\265\213\350\257\225/1.\345\215\225\345\205\203\346\265\213\350\257\225/config.json" "b/data/1.rust\345\210\235\351\230\266/4.\346\265\213\350\257\225/1.\345\215\225\345\205\203\346\265\213\350\257\225/config.json" index f5f033a..afb2c28 100644 --- "a/data/1.rust\345\210\235\351\230\266/4.\346\265\213\350\257\225/1.\345\215\225\345\205\203\346\265\213\350\257\225/config.json" +++ "b/data/1.rust\345\210\235\351\230\266/4.\346\265\213\350\257\225/1.\345\215\225\345\205\203\346\265\213\350\257\225/config.json" @@ -2,7 +2,9 @@ "node_id": "rust-42f787dd3e5441ec82927882eb7f893c", "keywords": [], "children": [], - "export": [], + "export": [ + "unit_test.json" + ], "keywords_must": [], "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/1.rust\345\210\235\351\230\266/4.\346\265\213\350\257\225/1.\345\215\225\345\205\203\346\265\213\350\257\225/unit_test.json" "b/data/1.rust\345\210\235\351\230\266/4.\346\265\213\350\257\225/1.\345\215\225\345\205\203\346\265\213\350\257\225/unit_test.json" new file mode 100644 index 0000000..0e08b1f --- /dev/null +++ "b/data/1.rust\345\210\235\351\230\266/4.\346\265\213\350\257\225/1.\345\215\225\345\205\203\346\265\213\350\257\225/unit_test.json" @@ -0,0 +1,7 @@ +{ + "type": "code_options", + "author": "jackymao_com", + "source": "unit_test.md", + "notebook_enable": false, + "exercise_id": "" +} \ No newline at end of file diff --git "a/data/1.rust\345\210\235\351\230\266/4.\346\265\213\350\257\225/1.\345\215\225\345\205\203\346\265\213\350\257\225/unit_test.md" "b/data/1.rust\345\210\235\351\230\266/4.\346\265\213\350\257\225/1.\345\215\225\345\205\203\346\265\213\350\257\225/unit_test.md" new file mode 100644 index 0000000..41fbb61 --- /dev/null +++ "b/data/1.rust\345\210\235\351\230\266/4.\346\265\213\350\257\225/1.\345\215\225\345\205\203\346\265\213\350\257\225/unit_test.md" @@ -0,0 +1,25 @@ +# 单元测试 + +除了使用 println!() 或 dbg!() 打印出值这种方法之外,rust 还支持更完善的测试代码写法,而且可以先写测试代码,再实现对应的功能,以实现 TDD (Test-Driven Development)。 + +单元测试是为了测试我们所写的每一个单元的代码(函数),确保这个单元能完成我们需要的功能,避免所有可能的用法中出现错误。 + +当你使用 cargo new demo_unit_test --lib 新建一个库的时候,在生成的 src/lib.rs 文件里面会自动出现一个测试样例,提醒你为你的库写好测试。 + +```rust + +#[cfg(test)] +mod tests { + #[test] + fn it_works() { + let result = 2 + 2; + assert_eq!(result, 4); + } +} + +``` + +这里已经包含了一个测试的基本元素。你可以使用 cargo test 来运行这个测试,也是用这个命令来运行所有的后续测试。 + + + -- GitLab