Content
16 Lessons • 0 Quizzes • 0 Challenges
开始之前
- 1
为什么选择这门课程?
- 2
课程结构
- 3
为什么要进行单元测试?
JUnit 测试基础
- 1
编写单元测试的原因
- 2
JUnit 测试入门
- 3
我们的第一个通过测试
- 4
通过安排、执行和断言来编写测试
- 5
理解我们正在测试的内容:Profile 类
- 6
让我们编写测试
- 7
使用 @Before 方法初始化测试
- 8
JUnit 测试小测验
深入探究 JUnit 断言
- 1
JUnit 中的断言简介
- 2
一个经典风格的断言:assertTrue
- 3
Hamcrest 断言
- 4
装饰器
- 5
比较两个浮点数
- 6
断言消息
- 7
测试预期的异常
- 8
使用 JUnit 预期异常
- 9
测验时间
组织你的测试
- 1
遵循 AAA 模式
- 2
测试行为而非方法
- 3
测试代码与生产代码之间的关系
- 4
专注且单一目的的测试
- 5
测试文档
- 6
使用注解
- 7
绿色是好的
- 8
测验时间
掌握 FIRST 原则
- 1
概述:良好测试的特性
- 2
[F]IRST:[F]快速
- 3
F[I]RST:[I]隔离你的测试
- 4
FI[R]ST:好的测试应该具有[R]重复性
- 5
FIR[S]T:[S]自验证
- 6
FIRS[T]:[T]及时
- 7
测验时间
要测试什么:Right-BICEP
- 1
Right-BICEP(orientation)
- 2
Right-BICEP:结果是否正确?
- 3
Right-BICEP:边界条件(B)
- 4
Right-B[I]CEP:检查逆关系(concept)
- 5
Right-BI[C]EP:通过其他方式交叉验证(concept)
- 6
Right-BIC[E]P:强制错误条件(concept)
- 7
Right-BICE[P]:性能特征(concept)
- 8
测验时间
边界条件:正确的方法
- 1
正确的做法
- 2
[C]ORRECT:[C]onformance(concept)
- 3
C[O]RRECT:[O]rdering
- 4
正确:范围
- 5
COR[R]ECT:[R]eference
- 6
正确:[C]ardinality 和 [E]xistence
- 7
CORREC[T]:[T]时间
- 8
测验时间
更大的设计格局
- 1
重构为更清晰的代码
- 2
为我们的方法寻找更合适的归宿
- 3
自动化与手动重构
- 4
重构要到什么程度?
- 5
测验时间
更大的设计问题
- 1
SOLID 类设计原则
- 2
单一职责原则与 Profile 类
- 3
命令-查询分离原则
- 4
测试维护成本
- 5
其他设计思路
- 6
测验时间
使用模拟对象
- 1
一个测试挑战
- 2
用桩(Stub)替换复杂行为
- 3
调整我们的设计以支持测试
- 4
使用模拟工具简化测试
- 5
最后一种简化:引入一个注入工具
- 6
使用模拟对象时需要注意哪些关键点?
- 7
测验时间
重构测试
- 1
寻找理解
- 2
测试异味:不必要的测试代码
- 3
测试异味:缺乏抽象
- 4
测试异味:无关信息
- 5
测试异味:过度复杂的构造
- 6
测试异味:多重断言
- 7
测试异味:无关细节
- 8
测试异味:隐含含义与误导性组织
- 9
添加一个新测试
- 10
测验时间
单元测试的全局视角
- 1
测试驱动开发
- 2
TDD流程
- 3
最小增量
- 4
代码重构
- 5
另一个小增量
- 6
支持多个答案:一个小小的架构设计调整
- 7
扩展接口
- 8
最后的测试
- 9
测试即文档
- 10
测验时间
测试一些复杂的内容
- 1
测试多线程代码
- 2
提取应用逻辑
- 3
重新设计线程逻辑
- 4
测试数据库
- 5
数据问题
- 6
清理数据库并模拟控制器
在项目中进行测试
- 1
持续警惕
- 2
一个团队,一个单位
- 3
与持续集成的融合
- 4
代码覆盖率
总结
- 1
结论
附录 - 配置 JUnit
- 1
IntelliJ IDEA
- 2
NetBeans
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Course Author:Anonymous User