(一)
1. 使用Junit的最佳实践:
1) 新建一个名为test的source folder,用于存放测试类源代码
2) 目标类与测试类应该位于同一个包下面,这样测试类中就不必导入源代码所在的包 因为他们位于同一个包下面
3) 测试类的命名规则:假如目标类是Calculator,那么测试类应该命名为 TestCalculator或者是CalculatorTest
2. Junit的口号:keep the bar green to keep the code clean。
3. 我的名言:No reflection, no most frameworks
4. Junit:单元测试不是为了证明您是对的,而是为了证明您没有错误。
5. 测试用例(Test Case)是单元测试的一个很重要的方面。
6. 单元测试主要是用来判断程序的执行结果与自己期望的结果是否一致。
7. 测试类必须要继承于TestCase父类。
8. 在junit 3.8中,测试方法需要满足如下原则:
1). public的
2). void的
3). 无方法参数
4). 方法名称必须以test开头
9. Test Case之间一定要保持完全的独立性,不允许出现任何的依赖关系。
10. 我们不能依赖于测试方法的执行顺序。
11. DRY(Don’t Repeat Yourself)。
12. 关于setUp与tearDown方法的执行顺序:
1) setUp
2) testAdd
3) tearDown
13.测试之前是什么状态,测试执行完毕后就应该是什么状态,而不应该由于测试执行的原因导致状态发生了变化。
(二)
1. 测试类的私有方法时可以采取两种方式:
1) 修改方法的访问修饰符,将private修改为default或public(但不推荐采取这种方式)。
2) 使用反射在测试类中调用目标类的私有方法(推荐)。
2. TestSuite(测试套件):可以将多个测试组合到一起,同时执行多个测试。
3. JUnit 4全面引入了Annotation来执行我们编写的测试。
4. JUnit 4并不要求测试类继承TestCase父类。
5. 在一个测试类中,所有被@Test注解所修饰的public,void方法都是test case,可以被JUnit所执行。
6. 虽然JUnit 4并不要求测试方法名以test开头,但我们最好还是按照JUnit 3.8的要求那样,以test作为测试方法名的开头。
7. 在JUnit 4中,通过@Before注解实现与JUnit 3.8中的setUp方法同样的功能,通过@After注解实现与JUnit 3.8中的tearDown方法同样的功能。
8. 在JUnit 4中,可以使用@BeforeClass与@AfterClass注解修饰一个public static void no-arg的方法,这样被@BeforeClass注解所修饰的方法会在所有测试方法执行前执行;被@AfterClass注解所修饰的方法会在所有测试方法执行之后执行。
9. @Ignore注解可用于修饰测试类与测试方法,当修饰测试类时,表示忽略掉类中的所有测试方法;当修饰测试方法时,表示忽略掉该测试方法。
10. 参数化测试(Parameters):当一个测试类使用参数化运行器运行时,需要在类的声明处加上@RunWith(Parameterized.class)注解,表示该类将不使用JUnit内建的运行器运行,而使用参数化运行器运行;在参数化运行类中提供参数的方法上要使用@Parameters注解来修饰,同时在测试类的构造方法中为各个参数赋值(构造方法是由JUnit调用的),最后编写测试类,它会根据参数的组数来运行测试多次。
11. 在JUnit 4中,如果想要同时运行多个测试,需要使用两个注解:@RunWith(Suite.class)以及@Suite.SuiteClasses(),通过这两个注解分别指定使用Suite运行器来运行测试,以及指定了运行哪些测试类,其中的@SuiteClasses中可以继续指定Suite,这样JUnit会再去寻找里面的测试类,一直找到能够执行的Test Case并执行之。
12. JUnit在TestCase类中应用了模板方法模式:
13. JUnit在TestCase类中应用了适配器(Adapter)模式:
在runBare方法中,通过runTest方法将我们自己编写的testXXX方法进行了适配,使得JUnit可以执行我们自己编写的Test Case,runTest方法的实现如下:
在runTest方法中,首先获得我们自己编写的testXXX方法所对应的Method对象(不带参数),然后检查该Method对象所对应的方法是否是public的,如果是则调用Method对象的invoke方法来去执行我们自己编写的testXXX方法。
(三)
1. 适配器模式(Adapter Pattern)主要分为三种:
1) 基于类的继承方式
2) 基于对象组合方式
3) 缺省的适配器模式(AWT,Swing事件模型所采用的模式)
2. 我们学习过的设计模式:
1) 单例模式(singleton)
2) 策略模式(Strategy)
3) 代理模式(static proxy, dynamic proxy)
4) 观察者模式(Observer)
5) 装饰模式(Decorator)
6) 工厂方法模式(Factory Method)
7) 模板方法模式(Template Method)
8) 适配器模式(Adapter)
9) 命令模式(Command)
10) 组合模式(Composite)
3. 组合模式(Composite),组合模式有两种实现方式:
1) 将管理子元素的方法定义在Composite类中
2) 将管理子元素的方法定义在Component接口中,这样Leaf类就需要对这些方法空实现。
4. JUnit中要区分错误(error)与失败(failure)
1) 错误指的是代码中抛出了异常等影响代码正常执行的情况,比如抛出了ArrayIndexOutOfBoundsException,这就叫做错误。
2) 失败指的是我们断言所期待的结果与程序实际执行的结果不一致,或者是直接调用了fail()方法,这叫做失败。
5. JUnit中所使用的观察者模式
6. 对于测试类来说,如果一个测试类中有5个测试方法,那么JUnit就会创建5个测试类的对象,每一个对象只会调用一个测试方法(为了符合命令模式的要求),在添加方法之前,需要首先判断测试方法是否满足public,void,no-arg,no-return这些条件,如果满足则添加到集合当中准备作为测试方法来去执行。
分享到:
相关推荐
Python课程设计,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。
内容概要:本文介绍了使用 Matlab 实现 SO-CNN-SVM 框架进行多输入单输出回归预测的全过程。该框架利用蛇群优化算法(SO)优化卷积神经网络(CNN)和 支持向量机(SVM),实现高效的特征提取和回归预测。文章详细描述了数据预处理、模型构建、SO算法优化、模型训练、可视化和 GUI 设计的步骤,并提供了完整的代码示例。 适合人群:具备一定机器学习和深度学习基础,熟悉 Matlab 编程的研究人员和开发人员。 使用场景及目标:① 工业制造中的设备故障预测和质量控制;② 金融分析中的市场价格预测和风险管理;③ 环境监测中的气候变化和空气质量预测。该框架的目标是提高预测精度,优化模型参数,缩短训练时间,增强模型泛化能力。 阅读建议:本文不仅详细介绍了理论背景和技术细节,还提供了实际操作的代码和 GUI 设计思路,建议读者在阅读过程中结合实际数据和代码进行实验,以更好地理解和掌握相关技术。
Java系统源码+社区养老服务系统 内容概要: 本资源包含了完整的Java前后端源码及说明文档,适用于想要快速搭建并部署Java Web应用程序的开发者、学习者。 技术栈: 后端:Java生态系统,包含Spring Boot、Shiro、MyBatis等,数据库使用Mysql 前端:Vue、Bootstrap、Jquery等 适用场景示例: 1、毕业生希望快速启动一个新的Java Web应用程序。 2、团队寻找一个稳定的模板来加速产品开发周期。 3、教育机构或个人学习者用于教学目的或自学练习。 4、创业公司需要一个可以立即投入使用的MVP(最小可行产品)。
Java系统源码+健身房管理系统 内容概要: 本资源包含了完整的Java前后端源码及说明文档,适用于想要快速搭建并部署Java Web应用程序的开发者、学习者。 技术栈: 后端:Java生态系统,包含Spring Boot、Shiro、MyBatis等,数据库使用Mysql 前端:Vue、Bootstrap、Jquery等 适用场景示例: 1、毕业生希望快速启动一个新的Java Web应用程序。 2、团队寻找一个稳定的模板来加速产品开发周期。 3、教育机构或个人学习者用于教学目的或自学练习。 4、创业公司需要一个可以立即投入使用的MVP(最小可行产品)。
阵列信号处理中,均匀线阵条件下,分析不同信噪比条件下,幅相误差对于测向角度偏差的影响
Python课程设计,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。
Python课程设计,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。
瓶罐检测26-CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rarDetectResiduos-V1 2024-02-24 3:32 PM ============================= *与您的团队在计算机视觉项目上合作 *收集和组织图像 *了解和搜索非结构化图像数据 *注释,创建数据集 *导出,训练和部署计算机视觉模型 *使用主动学习随着时间的推移改善数据集 对于最先进的计算机视觉培训笔记本,您可以与此数据集一起使用 该数据集包括6821张图像。 工具以创建格式注释。 将以下预处理应用于每个图像: *像素数据的自动取向(带有Exif-Arientation剥离) *调整大小为640x640(拉伸) 应用以下扩展来创建每个源图像的3个版本: *水平翻转的50%概率 *垂直翻转的50%概率 * -15和+15度之间的随机旋转 * 0到1.5像素之间的随机高斯模糊
名片管理系统.pdf
瓶子检测3-YOLOv9数据集合集.rarMY_DATASET11-V1 2022-12-28 1:46 AM ============================= *与您的团队在计算机视觉项目上合作 *收集和组织图像 *了解和搜索非结构化图像数据 *注释,创建数据集 *导出,训练和部署计算机视觉模型 *使用主动学习随着时间的推移改善数据集 对于最先进的计算机视觉培训笔记本,您可以与此数据集一起使用 该数据集包括1001张图像。 塑料 - 玻璃金属纸纸以yolov9格式注释。 将以下预处理应用于每个图像: *像素数据的自动取向(带有Exif-Arientation剥离) *调整到224x224(拉伸) 没有应用图像增强技术。
水瓶瓶罐检测58-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rarQaldyq Suryptau-V2 2024-02-26 8:05 PM ============================= *与您的团队在计算机视觉项目上合作 *收集和组织图像 *了解和搜索非结构化图像数据 *注释,创建数据集 *导出,训练和部署计算机视觉模型 *使用主动学习随着时间的推移改善数据集 对于最先进的计算机视觉培训笔记本,您可以与此数据集一起使用 该数据集包括2328张图像。 以可可格式注释了金属 - 柔性 - plastmassa-qaldyq。 将以下预处理应用于每个图像: *像素数据的自动取向(带有Exif-Arientation剥离) *调整大小为416x416(拉伸) 应用以下扩展来创建每个源图像的3个版本: *随机裁剪图像的0%至10% * -15和+15度之间的随机旋转 *随机的BRIGTHNESS调整-10%至+10% * -7%至 +7%之间的随机暴露调整
Python课程设计,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。
使用精品酒销售管理系统的用户分管理员和用户两个角色的权限子模块。 管理员所能使用的功能主要有:主页、个人中心、用户管理、商品分类管理、商品信息管理、系统管理、订单管理等。 用户可以实现主页、个人中心、我的收藏管理、订单管理等。 前台首页可以实现商品信息、新闻资讯、我的、跳转到后台、购物车等。 项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 服务器:tomcat7
1_io_thread_1734442494401.wmv
java 一个基于Java Web的在线问卷调查系统源码实例 一个基于Java Web的在线问卷调查系统源码实例
网站前台注重的功能实现包括会员注册、系统公告、项目查看、在线留言、关注收藏项目、众筹项目申请,网站后台注重的功能实现包括系统用户管理、用户注册审核、项目类别管理、项目信息管理、投资申请查看、投资申请审核、申请结果反馈。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 服务器:tomcat7
以下是一个关于毕业设计的资源描述和项目源码的简要概述: 资源描述 该毕业设计项目为一个基于Spring Boot的在线学习系统。该项目使用了丰富的资源来确保项目的顺利完成。首先,通过数字图书馆和在线数据库(如谷歌学术)获取了大量的相关文献和最新研究成果,为项目的理论基础提供了坚实的支撑。其次,参考了一些电子书籍和国内外教程资源,学习了相关的开发技巧和最佳实践。此外,项目还利用了Spring Boot、MyBatis等开源框架,以及MySQL数据库,这些资源大大提高了开发效率和系统的稳定性。 在开发过程中,还参与了线上和线下的技术培训和研讨会,与其他开发者交流经验,解决了一些技术难题。这些活动不仅提供了宝贵的学习机会,还帮助更好地理解了项目的需求和实现方式。 项目源码概述 该项目源码主要包括以下几个部分: 后端代码:基于Spring Boot框架,实现了用户管理、课程管理、在线学习、模拟考试等功能。 前端代码:使用HTML、CSS和JavaScript(可能使用Vue.js或React.js)等技术,构建了友好的用户界面,使用户能够方便地浏览课程、进行在线学习和考试。 数据库脚本
如果在运维环境中,尤其是乙方,甲方客户为了安全一般不允许上传破解/绿色版等运维软件,这时候如果有官网下载的运维工具且是免费的,那不就可以正常使用了。 8款软件,显示版本到6,以后可不可以不清楚,现在我用绿色版用不上这个。 包含:xfile、xftp、xlpd、xmanager、xmanager 3d、xmanager powersuite、xshell、xshell plus
广东省深圳市公司申请助理级职称的主要步骤
杂货产品检测43-YOLO(v5至v9)、CreateML、Paligemma、TFRecord、VOC数据集合集.rarIPCV分配-V6 2024-01-21 6:10 PM ============================= *与您的团队在计算机视觉项目上合作 *收集和组织图像 *了解和搜索非结构化图像数据 *注释,创建数据集 *导出,训练和部署计算机视觉模型 *使用主动学习随着时间的推移改善数据集 对于最先进的计算机视觉培训笔记本,您可以与此数据集一起使用 该数据集包括7012张图像。 家庭废物以createMl格式注释。 将以下预处理应用于每个图像: *像素数据的自动取向(带有Exif-Arientation剥离) *调整大小为640x640(拉伸) 没有应用图像增强技术。