课程目标与先修要求
了解本课程的先修要求以及你将学到的内容。
2015年,在华盛顿州,当局发现过去13年间有超过3,200名囚犯因软件缺陷被提前释放。早在2002年,法院裁定可以将良好行为积分用于提前释放后,相关部门发布了一次软件更新,旨在自动计算这些积分并确定释放日期。然而,该软件所使用的计算公式存在漏洞,导致这些囚犯平均提前49天获释。尽管这一事件在政治和社会层面引发了广泛讨论,但从开发者的角度来看,它凸显了全面测试的重要性。这仅仅是无数由软件缺陷引发的事件中的一个例子。
你需要了解的内容
本课程的核心是测试Scala代码,因此你需要熟悉Scala语法,尤其是Scala 3。此外,你还需要了解其主要构建工具——sbt(Scala Build Tool)。第一章简要介绍了Scala和sbt,如果你希望复习基础知识,这是一个很好的起点。课程不会使用语言中冷门或特殊的功能;如果涉及任何此类内容,都会进行解释,确保你能跟上课程进度。
在课程过程中,我们将探讨一些高级主题,例如异步代码测试、向测试注入虚假数据、模拟对象(mocks)、属性测试以及使用Docker进行测试。虽然你若具备相关经验会更有帮助,但每节课都会提供快速入门介绍,便于你深入理解。
你将学到的内容
本课程旨在提升编写测试的方式。我们将尽可能使用Scala 3,并以ScalaTest作为主要测试库。这将使我们能够编写代码示例,直观展示课程中讲解的各种概念。
但本课程的价值不仅限于介绍多个测试库和框架。尽管部分课程会演示如何使用特定库完成任务,但核心重点在于运用批判性思维来分析和利用库所提供的各种构造。正如你将看到的,同一功能往往有多种测试方法,本课程将为你提供多种适用于不同场景的良好实践。
为了帮助你更好地掌握这些概念,课程还包含一些理论性内容。毕竟,如果不了解ScalaTest的工作原理及其如何支持断言编写,就无法正确创建ScalaTest测试套件。
你可能会对课程中提出的某些实践方法持有不同意见,这完全没问题。编程与测试是一个复杂的领域,来自不同背景的人每天都在独特的情境下面对相似的任务。讨论什么是好或坏、正确或错误的做法,正是分享知识的有效方式。
准备好了吗?开始享受课程吧!