> For the complete documentation index, see [llms.txt](https://tdd.shujuwajue.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tdd.shujuwajue.com/ju-ti-shi-jian/shen-me-shi-hou-xie-ce-shi.md).

# 什么时候写测试？

* 如果你要写一个新的方法和功能，那么先编写编写测试。
* 如果你要在没有经过测试的代码上写新的功能，那么先编写编写测试对需要新增的功能。
* 如果你想得到代码有哪些一种异常情况，那么应该编写一个测试以针对这种情况进行单元测试。
* 如果你打算重构某些代码，但是不确定它应该有什么行为，那么应该先编写一个测试。

**需要100%测试覆盖率吗？**

* 应该是一种风险驱动（risk driven）行为，测试的目的是为了希望找出现在或者未来可能出现的错误。
* 测要诀是：测试你最担心出错的地方／这样你就能从测试工作中取得最大的利益。
* 编写未完善的测试并实际运行，好过对完美测试的无尽等待。也就是说测试先行及时报错也是好的。

> 顺便看一个使用jasmine框架TDD的例子：[单元测试 jasmine](https://www.cnblogs.com/znsongshu/p/6080015.html)
