实验内容

1.初步掌握单元测试和TDD

2.理解并掌握面向对象三要素:封装、继承、多态

3.初步掌握UML建模

4.熟悉S.O.L.I.D原则

5.了解设计模式

实验内容

1.参考Intellj IDEA 简易教程
提交最后三个测试用例都通过的截图,截图上要有画图加水印,输入自己的学号。

2.参考 积极主动敲代码使用JUnit学习Java,
以 TDD的方式研究学习StringBuffer,提交你的单元测试用例和测试通过的截图,截图要加上学号水印。

3.实验二 Java面向对象程序设计
对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理解设计模式用自己的学号%6进行取余运算,根据结果进行代码扩充:
0: 让系统支持Byte类,并在MyDoc类中添加测试代码表明添加正确1

1: 让系统支持Short类,并在MyDoc类中添加测试代码表明添加正确

2: 让系统支持Boolean类,并在MyDoc类中添加测试代码表明添加正确

3: 让系统支持Long类,并在MyDoc类中添加测试代码表明添加正确

4: 让系统支持Float类,并在MyDoc类中添加测试代码表明添加正确

5: 让系统支持Double类,并在MyDoc类中添加测试代码表明添加正确

4.以TDD的方式开发一个复数类Complex支持加减乘除。

5.使用StarUML对实验二中的代码进行建模,发类图的截图,加上学号水印。类图中至少两个类。

实验步骤

(一)单元测试

(1)三种代码
•产品代码
public class MyUtil{
public static String percentage2fivegrade(int grade){
//如果成绩小于60,转成“不及格”
if (grade < 60)
return "不及格";
//如果成绩在60与70之间,转成“及格”
else if (grade < 70)
return "及格";
//如果成绩在70与80之间,转成“中等”
else if (grade < 80)
return "中等";
//如果成绩在80与90之间,转成“良好”
else if (grade < 90)
return "良好";
//如果成绩在90与100之间,转成“优秀”
else if (grade < 100)
return "优秀";
//其他,转成“错误”
else
return "错误";
}
}
•测试代码
为了检测代码的健硕性,避免出现bug需要对代码进行测试,这个时候就需要使用测试代码。
编写测试代码

•一般情况测试
代码,结果如下

•边界测试
对输入为“0,60,70,80,90,100”这些边界情况进行测试的代码,得到如下结果

出现了问题,对这个问题进行修复,得到代码2,再次进行测试,得到如下结果

(2) TDD(Test Driven Devlopment, 测试驱动开发)

TDD的一般步骤如下:
•明确当前要完成的功能,记录成一个测试列表

•快速完成编写针对此功能的测试用例

•测试代码编译不通过(没产品代码呢)

实验步骤

一、学习在IDEA下使用TDD并安装JunitGenerator V2.0

在IDEA中使用TDD可以参考老师的Intellj IDEA 简易教程,按照老师的步骤一步一步进行,只到安装JunitGenerator V2.0时出现了问题,教程中是说在设置对话框中选择Plugins, 单击Install JetBrains plugin...按钮打开插件安装界面,然后在插件安装对话框的搜索中输入junit,单击JunitGenerator V2.0,单击右边绿色的Install1按钮安装,但是在我单击Install JetBrains plugin...按钮打开插件安装界面时找不到JunitGenerator V2.0,只有下面这个插件

经过多次探索,发现如下步骤可以找到需要安装的内容:在设置对话框中选择Plugins,然后单击Browse repositories...按钮(如下图)打开插件安装界面,然后又教程相同,在插件安装对话框的搜索中输入junit,单击JunitGenerator V2.0,单击右边绿色的Install1按钮安装。

使用TDD

TDD的编码节奏是:
•增加测试代码,JUnit出现红条

•修改产品代码

•JUnit出现绿条,任务完成
通过TDD完成了本次实验任务的1,2和4,在这里给出通过TDD学习的代码链接并且测试通过的截图
第一个实验题目的产品代码测试代码以及结果截图

第二个实验题目的产品代码,测试代码以及结果截图

第四个实验题目的产品代码,测试代码,以及运行结果截图

实验5我自己没做出来,那个图尝试了很多但都没成功

jav实验二的更多相关文章

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

    实验二 Java面向对象程序设计 1实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 2. 初步掌握单元测试 ...

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

    20155330 实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步 ...

  3. 20145215&20145307《信息安全系统设计基础》实验二 固件设计

    20145215&20145307<信息安全系统设计基础>实验二 固件设计 实验目的与要求 了解多线程程序设计的基本原理,学习 pthread 库函数的使用. 了解在 linux ...

  4. FPGA与simulink联合实时环路系列——实验二LED

    实验二LED 实验内容 在实验一的基础上,将simulink产生的测试信号输出到FPGA开发板上的LED灯进行显示,这里要在生成的硬件模型上进行修改,将传送到FPGA的信号输出到8个LED灯上,并且对 ...

  5. 20145204&20145212信息安全系统实验二

    20145204&20145212信息安全系统实验二 链接

  6. 20145204&20145212实验二报告

    实验二固件设计 步骤: 1.开发环境的配置,参考实验一 1.将实验代码拷贝到共享文件夹中. 2.在虚拟机中编译代码.对于多线程相关的代码,编译时需要加-lpthread的库.下载调试在超级终端中运行可 ...

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

    一.实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 二.实验步骤 (一)单元测试 (1)三种代码 伪代码: ...

  8. 实验二 用C语言表示进程的调度

    实验二 一. 实验目的 通过模拟进程的调度,进一步了解进程的调度的具体过程. 二. 实验内容和要求 1.进程PCB的结构体定义 2.定义队列 3.输入进程序列 4.排序(按到位时间) 5.输出进程运行 ...

  9. 20145218&20145240 《信息安全系统设计基础》实验二 固件设计

    20145218&20145240 <信息安全系统设计基础>实验二 固件设计 实验报告链接:http://www.cnblogs.com/20145240lsj/p/6035512 ...

随机推荐

  1. hadoop生态系统主要架构图汇总

    1 hadoop1.0时期架构 2 hadoop2.0时期架构 3 hdfs架构 [Active Namenode]:主 Master(只有一个),管理 HDFS 的名称空间,管理数据块映射信息:配置 ...

  2. layui 常见的表单元素

    第一步:引用文件 效果图(日期.文件上传在下面): <form class="layui-form" action=""> <div clas ...

  3. Android 获取keystore SHA1方法

    (第一种方式)通过Android Studio编译器获取SHA1 第一步.打开Android Studio的Terminal工具 第二步.输入命令:keytool -v -list -keystore ...

  4. 改造 Android 官方架构组件 ViewModel

    前言 Android 官方架构组件在今年 5 月份 Google I/O 大会上被公布, 直到 11 月份一直都是测试版, 由于工作比较繁忙, 期间我只是看过类似的文章, 但没有在实际项目中使用过, ...

  5. ssh: connect to host github.com port 22: Connection timed out

    问题描述 $ git clone git@github.com:MaugerWu/MaugerWu.github.io.git Cloning into 'MaugerWu.github.io'... ...

  6. jdbctemplate 调用oracle 有返回(会话型临时表数据的)结果的存储过程

    注:本文为博主 原创. jdbctemplate 调用oracle存储过程 事务 临时表  有返回结果 1:java 代码 本逻辑代码本是想把 java 代码里的list<Strign>类 ...

  7. Confluence 6 访问你的宏正文(body)

    请查看 Writing User Macros 页面获得有关如何写用户宏的介绍. 这个页面介绍你可以在用户宏中可以使用的的代码信息. 访问你的宏正文(body) 在你用户宏模板中的 $body 对象可 ...

  8. laravel 更新

    public function update(Request $request, ResponseFactoryContract $response) { $user = $request->u ...

  9. Linux文本分析命令awk的妙用

    基本用法 awk是一个强大的文本分析工具,简单来说awk就是把文件逐行读入,(空格,制表符)为默认分隔符将每行切片,切开的部分再进行各种分析处理 awk命令格式如下 awk [-F field-sep ...

  10. 【转】asp.net Core 系列【二】—— 使用 ASP.NET Core 和 VS2017 for Windows 创建 Web API

    在本教程中,将生成用于管理“待办事项”列表的 Web API. 不会生成 UI. 概述 以下是将创建的 API: API 描述 请求正文 响应正文 GET /api/todo 获取所有待办事项 无 待 ...