20162321王彪-实验二-Java面向对象程序设计
实验二Java面向对象程序设计
实验内容一
- 初步掌握单元测试和TDD
- 什么是单元测试:单元测试时开发者编写的一小段代码,用于检测被测代码的一个很小的,很明确的功能是否正确。执行单元测试,是为了证明某段代码的行为确实和开发者所期望的一致。
- 测试哪些内容:Right-BICEP
Right----结果是否正确?
B----是否所有的边界条件都是正确的?
I----能查一下反向关联吗?
C----能用其他手段交叉检查一下结果吗?
E----你是否可以强制错误条件发生?
P----是否满足性能要求?
- Junit的断言:assertEquals
这是接触的第一个断言形式,因为老师的指导博客里用的就是此方法
,assertNull,assertSame,assertTrue,fail
具体作用
assertEquals(expected,actual):expected是你的期望值(通常都是硬编码的),actual是被测试代码实际产生的值。(计算机并不能精确的表示所有的浮点数,因此用断言来比较浮点数需要指定一个额外的误差参数assertEquals(3.33,10.0/3.0,0.01
))
assertNull(assertNotNull):验证一个给定对象是否为null
assertSame(expected,actual):验证expected参数和actual参数是否引用的同一个对象
assertTrue(assertFalse):验证一个二元条件是否为真
fail:此断言将会是测试立即失效,这种断言通常被用于标记某个不应该到达的分支
- Junit的框架
说到框架在一开始的时候还不明白
第一次在IDEA上使用Junit4
系统自动生成了框架,发现和老师的指导不同,有点吃惊,有点紧张......
- 这是《单元测试之道》中展示的某测试代码框架最小要求
import junit.framework.*;
public class TestSimple extends TestCase{
public TestSimple(String name){
super(name);}
public void testAdd(){
assertEquals(2,1+1);}
}
- 每个包含测试的类都必须如所示那样与TestCase继承而来
- 基类需要一个以String为参数的构造函数,因此我们必须调用supper以传递这么一个名字
- 所有以test开头的方法都会被Junit自动运行
- 总结
时间较短,以上内容是我简读《单元测试之道》一书所了解到的内容,本可以读大部分的,但是图书馆的系统错误这本书不能外借,很久都没有真正静下心来读一本书了,这种感觉真的很棒,所以计划在接下来两周内将此书读完,尽管不可能通懂,但也要试着了解,争取写一遍总结的博客
实验内容二
再次分享一些干货,对三大概念的理解十分有帮助
实验内容三
- 初步掌握UML建模
实验内容四
S – 单一职责原则
O – 开放封闭原则
L – 里氏替换原则
I – 接口隔离原则
D – 依赖倒置原则