任务2:添加安全网

作为向祖传代码发起挑战的第一步,永远是先搭建一张测试的安全网,这张安全网需要有这样的特点:

  • 必须很容易使用。最好是按一个快捷键就能整个运行它,这样我们才可能频繁执行它

  • 必须非常直观。我们不想做人工的比对,最好是由它快速告诉我们测试是否失败,前后差别是什么

  • 必须覆盖全面。姑且不说 100%的覆盖率,如果没有 90%以上的覆盖率,怎么好意思说自己是一张“安全”网呢?

如果你想的是先添加单元测试,你可能会遇到挫折,一是因为难以找到一个合适的“单元”切入进行测试,二是难以保证全面的覆盖率。你需要开动脑筋,找到系统的入口点和输出点,仔细寻找有没有可以用来记录系统行为的用例。

此外,你还需要严格遵循这个规则:在安全网搭建好之前不能修改产品代码。我们可不想意外地修改代码的行为。

你的任务

Java:

git clone git@github.com:linesh-simplicity/gildedrose-java.git
git checkout task-2-safety-net
./gradlew clean build

JavaScript:

git clone git@github.com:linesh-simplicity/gildedrose.git
git checkout task-2-safety-net
npm i
npm test
  1. 给代码编写自动化的测试安全网

  2. 不允许对产品代码做任何修改

  3. 测试覆盖率不低于 95%

  4. 能够通过一个快捷键运行测试

  5. 能够自动化报告测试结果

反思

  • 过程中有没有遇到纠结的情况?

Last updated