MengBridgeCourse 中文版

第 7 章 测试与异常

| 关于   英文版   «  6.4. 单元 6 实验 2 占位符   ::   目录   ::   7.2. 关于异常  »

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 方法如何工作。

Assertions

任务

AssertThat 风格

传统风格

备注

检查 x 是否等于 5

assertThat(x).isEqualTo(5);

assertEquals(5, x);

虽然新风格有 .isNotEqualTo() ,但旧风格中没有 assertNotEquals()

检查一个双精度浮点数 x 是否等于双精度浮点数 y

assertThat(x).isEqualTo(y, within(0.01));

assertEquals(y, x, 0.01);

检查 x 是否等于 true

assertThat(x).isTrue();

assertTrue(x);

检查 x 是否等于 false

assertThat(x).isFalse();

assertFalse(x);

检查 x 是否等于 null

assertThat(x).isNull();

assertNull(x);

检查 x 是否 不 等于 null

assertThat(x).isNotNull();

assertNotNull(x);

检查两个对象变量是否引用内存中的同一空间

assertThat(obj1).isSameAs(obj2);

assertSame(obj2, ob1);

7.1.5. 交互式:Hokie 班级 JUnit 测试 [19:37]

Follow Along and Engage

下载与视频对应的幻灯片。观看视频时,在幻灯片上做笔记,并亲自练习绘制图表!

Video Slides 7.1.4.1-JavaUnitTesting.pdf

7.1.6. 检查点 2

7.1.7. 使用学生.TestCase 编写 JUnit 测试的回顾 [9:57]

7.1.7.1. 编写 JUnit 测试的额外参考资料:

Writing JUnit Tests With Student TestCase

A Whirlwind Introduction to JUnit

7.1.8. 检查点 3

   «  6.4. 单元 6 实验 2 占位符   ::   目录   ::   7.2. 关于异常  »

关闭窗口