2018-2019-2 20175227张雪莹《Java程序设计》 实验二《Java面向对象程序设计》

2018-2019-2 20175227张雪莹《Java程序设计》

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

实验报告封面

  • 课程:Java程序设计 班级:1752班 姓名:张雪莹 学号:20175227
  • 指导教师:娄嘉鹏 实验日期:2019年4月13日
  • 实验时间:--- 实验序号:实验二
  • 实验名称:Java开发环境的熟悉
  • 实验题目:
  • 实验要求:
    • 完成实验二《Java面向对象程序设计》中的内容
    • 其中Eclipse相关的内容参考Intellj IDEA 简易教程换成IDEA实现
    • 参考实验二《Java面向对象程序设计》的一点说明,完成云班课中的检查点,也可以先完成实验报告,直接提交。注意不能只有截图,要有知识点,原理,遇到的问题和解决过程等说明。实验报告中一个检查点要有多张截图。
    • 发表实验报告博客,标题“学期(如2018-2019-2) 学号(如20175300)实验二《Java面向对象程序设计》实验报告”

实验步骤

  • 单元测试
    • 我们在IDEA中建一个项目,输入图中代码:

    • 针对MyUtil类我们写一个MyUtilTest.java的测试模块,如图:

    • 在 IDEA中我们把产品代码放在src目录中,把测试代码放在test目录中,右键单击项目,在弹出的菜单中选择New->Directory新建一个目录并输入目录名test。右键单击test目录,在弹出的菜单中选择Mark Directory as->Test Sources Root:

    • 在IDEA中运行结果如下,测试结果符合预期:

    • 只有一组输入的测试是不充分的,把一般情况都测试一下,代码如图。运行结果如图,测试结果符合预期:

    • 不能只测试正常情况,下面看看异常情况如何,比如输入为负分或大于100的成绩,代码如图:

    • 运行程序发现负分时与期望不一致,原因是判断不及格时没有要求成绩大于零。修改MyUtil.java,增加对负分的判断,再次运行测试,结果符合预期:

    • 输入为“0,60,70,80,90,100”这些边界情况进行测试如下:

    • 边界情况中输入100时有一个Bug,修改程序后所有结果符合预期

  • TDD(Test Driven Devlopment, 测试驱动开发)
    • 一般步骤
      • 明确当前要完成的功能,记录成一个测试列表
      • 快速完成编写针对此功能的测试用例
      • 测试代码编译不通过(没产品代码呢)
      • 编写产品代码
      • 测试通过
      • 对代码进行重构,并保证测试通过(重构下次实验练习)
      • 循环完成所有功能的开发
    • 设置好JUnit后,在IDEA中新建一个项目,然后新建一个空类MyUtil_1:

    • 鼠标单击类名会出现一个灯泡状图标,单击图标或按Alt + Entert,在弹出的菜单中选择Create Test,并选择创建JUnit3的测试用例 :

  • 增加第一个测试用例testNormal,注意测试用例前一定要有注解@Test,测试用例方法名任意,输入以下代码:
import org.junit.Test;
import junit.framework.TestCase;
public class MyUtilTest extends TestCase {
    @Test
    public void testNormal() {
        assertEquals("不及格", MyUtil.percentage2fivegrade(55));
        assertEquals("及格", MyUtil.percentage2fivegrade(65));
        assertEquals("中等", MyUtil.percentage2fivegrade(75));
        assertEquals("良好", MyUtil.percentage2fivegrade(85));
        assertEquals("优秀", MyUtil.percentage2fivegrade(95));
    }
}

  • 测试结果出现了一个红条(red bar),说明测试没通过:

  • 测试代码第十行传入55时,期望结果是“不及格”,代码返回了“错误”,修改MyUtil.Java吧,输入以下代码,再运行测试,如下图所示:

  • 增加一个测试异常情况的用例testException和一个测试边界情况的用例testBoundary,如下图:

实验中遇到的问题和解决过程

  • 问题1:JUnit测试时,Junit是红色的,如下图:

自己再网络上找的方法,试着清除缓存,重新导入包都无济于事

  • 问题1解决方法:后来通过寻求同学帮助,在该同学博客中找到了解决办法,如下:
    File -> Project Struct... -> Libraies -> 点击绿色的加号 -> Java -> 找到 IDEA 安装路径下的 Lib 中的junit-4.12 ->点击OK

  • 问题2:在将junit-4.12.jar设置完成后,TestCase仍是红色的
  • 问题2解决办法:在IDEA中选择菜单File->Project Structure...,在弹出的对话框中选择Dependancies标签页,单击+号,选择JARs or Directories...,输入上面找到的junit.jar

感悟和收获

参考资料

  • http://www.cnblogs.com/rocedu/p/6371315.html#SECDEBUG
  • https://www.cnblogs.com/orii/p/10695488.html

猜你喜欢

转载自www.cnblogs.com/zxy20175227/p/10701038.html
今日推荐