7.1. 回顾 Java 单元测试¶
7.1.1. 目标¶
完成本模块后,学生将能够:
复习 Java 类的基础知识,包括字段、构造函数、方法、参数以及 this 关键字的使用。
复习调试代码和代码覆盖率。
实现 JUnit 断言语句的变体。
7.1.2. 交互式:介绍霍基学院课程 [6:07]¶
在本讨论中,我们将通过一个名为"Hokie Class"的示例类来重新审视良好的测试实践。
Follow Along, Practice and Explore
在 Eclipse 中,使用 项目 > 下载作业... 菜单命令下载名为 "ex07.01-BuggyHokie" 的作业项目。使用此示例跟随以下视频操作。请自由尝试实验。
若需要查看下载 Eclipse 项目的说明,请参阅 01.02: Lab: LightBot for Beginners。
7.1.3. 检查点 1¶
7.1.4. Hokie 班级 JUnit 测试入门¶
7.1.4.1. 关于断言语句的说明¶
到目前为止,在课程中,当我们想要测试一段代码是否按我们期望的那样运行时,我们会运行类似这样的语句:
assertThat(<something we want to check>).isEqualTo(<expected value>);
这是一种更现代的样式,旨在提高可读性。然而,您可以使用另一种语法形式来创建断言:
assertEquals(<expected value>, <something we want to check>);
第二种断言语句如今更为常用,但正确使用时可能颇具挑战性。在使用 assertEquals 时,容易将需要检查的值放在前面,而将期望的值放在后面。
例如,假设我们想检查变量 x 是否等于 5。
int x = 4;
assertEquals(x, 5);
这样写虽然在语法上是正确的,但可能会引起混淆,因为错误消息会显示“期望 [4] 但得到 [5]"。实际上,我们期望的是 5,但得到了 4。
课程后半部分的视频将使用这种更常用的第二种语法。你可以继续使用任一版本。下面是一张列出两种风格断言的表。记住 isEqualto() 和 assertEquals() 方法对对象参数都使用 equals 方法,请务必理解被比较对象的相应 equals 方法如何工作。
任务 |
AssertThat 风格 |
传统风格 |
备注 |
|---|---|---|---|
检查 |
|
|
虽然新风格有 |
检查一个双精度浮点数 |
|
|
|
检查 |
|
|
|
检查 |
|
|
|
检查 |
|
|
|
检查 |
|
|
|
检查两个对象变量是否引用内存中的同一空间 |
|
|
7.1.5. 交互式:Hokie 班级 JUnit 测试 [19:37]¶
Follow Along and Engage
下载与视频对应的幻灯片。观看视频时,在幻灯片上做笔记,并亲自练习绘制图表!
Video Slides 7.1.4.1-JavaUnitTesting.pdf
