一、实验内容及步骤
1熟练掌握Junit和TDD;
TDD(Test Driven Devlopment, 测试驱动开发)
我们是该“先写产品代码,然后再写测试代码,通过测试发现了一些Bugs,修改代码”,还是该“先写测试代码,然后再写产品代码,从而写出来的代码就是正确的”呢?当然先写测试代码了。这种先写测试代码,然后再写产品代码的开发方法叫“测试驱动开发”(TDD)。TDD的一般步骤如下:
明确当前要完成的功能,记录成一个测试列表
快速完成编写针对此功能的测试用例
测试代码编译不通过(没产品代码呢)
编写产品代码
测试通过
对代码进行重构,并保证测试通过(重构下次实验练习)
循环完成所有功能的开发
基于TDD,我们不会出现过度设计的情况,需求通过测试用例表达出来了,我们的产品代码只要让测试通过就可以了。。
例如:测试用例testNormal,测试异常情况的用例testException和一个测试边界情况的用例testBoundary
单元测试:
TDD测试及代码:
二.参考Java面向对象程序设计
对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理解设计模式
- 用自己的学号%6进行取余运算,根据结果进行代码扩充: 让系统支持Boolean类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印。
- 添加代码如下图:
- 修改后的运行通过截图:
三.以TDD的方式开发一个复数类Complex
此处不再赘述要求。
程序码云链接:https://gitee.com/TheDawningg/gouliguoji/blob/master/exp/shiyan2/shiyan2_4.java
程序码云链接:https://gitee.com/TheDawningg/gouliguoji/blob/master/exp/shiyan2/shiyan2_4Test.java
程序测试截图:
四:使用UML图描述实验2中的程序
五、实验中遇到的问题。
1、开始使用Junit测试代码时,刚开始会出现红色代码说明有语法错误,这是因为MyUtil中还没有percentage2fivegrade方法,点击左边的灯泡图标可以修复这个问题
2、将Junit包放入后仍然为红色,我在百度了方法之后将Junit的程序包更换为4.1.2的版本
三、实验体会
对于第一次接触单元测试的我来讲,我认为写单元测试可以及时发现代码中存在的问题,减少后期维护的精力和费用,是调试代码的好方式。但第一次接触TDD所以感觉用的很费劲,还好有老师的教学博客,但仍然有不少问题,艰难的完成了实验。