实验二Java面向对象程序设计

实验内容一

  1. 初步掌握单元测试和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);}
}
  1. 每个包含测试的类都必须如所示那样与TestCase继承而来
  2. 基类需要一个以String为参数的构造函数,因此我们必须调用supper以传递这么一个名字
  3. 所有以test开头的方法都会被Junit自动运行
  • 总结

    时间较短,以上内容是我简读《单元测试之道》一书所了解到的内容,本可以读大部分的,但是图书馆的系统错误这本书不能外借,很久都没有真正静下心来读一本书了,这种感觉真的很棒,所以计划在接下来两周内将此书读完,尽管不可能通懂,但也要试着了解,争取写一遍总结的博客

实验内容二

再次分享一些干货,对三大概念的理解十分有帮助

实验内容三

  • 初步掌握UML建模

实验内容四

S – 单一职责原则

O – 开放封闭原则

L – 里氏替换原则

I – 接口隔离原则

D – 依赖倒置原则

最新文章

  1. yii2的分页和ajax分页
  2. 【技巧】只利用 Visual Stdio 自带的工具这么找父类?
  3. Android 样式和主题(style & theme)
  4. Unity3D引用dll打包发布的问题及解决
  5. spring webmvc使用ResponseBody前,在配置文件中的配置
  6. 【POJ】2823 Sliding Window
  7. c语言推断数是否是素数
  8. jQuery的发展史
  9. web.xml 中配置了error-page但不起作用问题
  10. 常见C/C++笔试、面试题(二)
  11. Web 开发模式演变历史和趋势
  12. cell上添加倒计时,以及时差问题的解决
  13. Python起步
  14. tomcat原理(二)
  15. Linux安装任意版本的dotnet环境
  16. uio.c 分析【转】
  17. JavaWeb学习 (九)————HttpServletRequest对象(一)
  18. Android TimeAnimator && TimeListener翻译
  19. [RF] 安装好Robot Framework之后怎样让启动的界面后面不带命令行窗口,且图片以机器人显示
  20. 初步认识linux的top命令

热门文章

  1. js中的回调函数的理解
  2. WPF基础篇之静态资源和动态资源
  3. python拓扑排序
  4. 【SPOJ】Longest Common Substring(后缀自动机)
  5. 【Luogu3768】简单的数学题(莫比乌斯反演,杜教筛)
  6. 【BZOJ4010】【HNOI2015】菜肴制作(拓扑排序)
  7. kali使用Fluxion钓鱼WiFi
  8. jstl的表达式不能解析
  9. 关于设计SQL表的一些问题
  10. RHEL7 网卡绑定