第一次使用JUnit的收获

本文通过使用JUnit单元测试工具对自定义的LargeNum类进行测试时遇到的问题,详细阐述了如何正确重载equals方法,并解释了为何参数类型必须是Object而非特定类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       今天看《JAVA编程思想》,发现使用JUnit来进行单元调试非常重要,不过书上说得有点深奥,我上网找了一篇比较浅显的文章进行测试,还真发现了问题,呵呵。
       我自己写了一个LargeNum类,用于支持无限大小的整数,同时实现了加法、减法和乘法操作,还重载了equals方法。我用JUnit测试了一下我的加法操作,居然失败了!!!!!我很震惊,不可能啊,我原来测试过很多遍,不应该有问题啊!于是我又在自己的main方法中测试了一下,结果是正确的,好奇怪啊!!于是我开始分析,由于加法操作的返回值也是一个LargeNum类型,因此JUnit一定会调用我的equals方法来进行比较,难道我的equals方法有问题?于是我又测试了一下我的equals方法。当我在Eclipse中写下
equals方法后,系统提示其参数可以是Object,也可以是LargeNum。我突然间明白了,问题就在这里。如果你要重载 equals方法,那么参数应该是Object,而我写了一个参数为LargeNum的 equals,还自以为是重载了原来的 equals,没想到却是利用多态写的一个新函数。JUnit在测试的时候不会调用我写的 equals,只会调用系统自带的 equals,怪不得测试失败了!!!!!于是我赶快把我的 equals的参数改为Object,又进行了一次测试,顺利通过,yeah~~~~
       最后,在强调一下,重载函数的时候,参数千万不能写错啊,否则错误是很难发现地~~~~~~~~~
<think>好的,用户需要软件工程毕业实习报告的模板或示例。首先,我需要回想一下相关的引用内容,看看有没有直接相关的资料。引用[2]提到了测试报告的结构,可能对实习报告的结构有一定参考价值。虽然测试报告和实习报告不同,但报告的基本框架可能有相似之处,比如引言、正文、结论等部分。 用户可能需要一个结构清晰的模板,帮助他们组织实习内容。我需要确保模板包含常见的部分,如实习目的、单位介绍、工作内容、技术实践、问题与解决、收获与体会等。同时,结合引用[5]提到的单元测试和开发环境的要求,可能在技术实践部分可以强调自动化测试或持续集成的内容,这样更贴近软件工程的实际应用。 另外,引用[4]提到了接口和类的设计示例,或许在技术实践部分可以举例说明如何在实际项目中应用面向对象的设计,比如使用类似IEmployee的接口来管理项目中的模块。这能帮助用户展示他们的技术能力。 还需要注意用户可能希望实习报告不仅描述做了什么,还要体现分析和解决问题的能力,所以需要包括问题与解决方案的部分。引用[1]提到工作流的优化,可能在项目流程管理方面可以建议用户描述如何拆分任务或优化工作流程,这能展示他们的工程思维。 最后,确保模板的格式规范,比如标题层次、段落清晰,可能还需要提醒用户根据学校的具体要求调整。如果有示例内容,最好提供简化的案例,方便用户替换成自己的经历。同时,建议用户结合具体项目,用数据或成果来增强报告的可信度,比如引用[5]提到的单元测试覆盖率提升等。</think>### 软件工程毕业实习报告模板与示例 #### 一、实习报告基本结构 1. **封面** - 学校名称、专业、姓名、学号、实习单位、指导老师、实习周期 2. **目录** - 按章节自动生成(建议使用Word自动目录功能) 3. **正文部分** **第一章 实习背景与目的** - 说明实习单位背景(如企业规模、技术领域)[^3] - 明确实习目标(如掌握某开发框架、参与完整项目周期)[^1] **第二章 实习内容与技术实践** - **项目描述**:简述参与的项目(如Web应用开发、系统优化) - 示例:*基于Netty的通信模块开发,使用引导类配置线程模型* - **技术栈**:列出使用的工具和语言(如Java/Spring Boot、Python/Django) - **核心任务**: - 功能模块实现(如接口设计$IEmployee$[^4]、数据库优化) - 质量保障(单元测试编写与覆盖率提升[^5]) - 工作流实践(任务拆分与多轮迭代[^1]) **第三章 问题与解决方案** - 典型问题: - *多线程环境下数据同步异常* → 解决方案:采用锁机制优化 - *接口响应延迟* → 解决方案:Redis缓存引入 - 方法论总结:*通过测试报告定位性能瓶颈*[^2] **第四章 收获与反思** - 专业技能提升(如掌握微服务架构) - 工程思维培养(如需求分析、代码可维护性设计[^5]) - 对行业认知的深化 4. **附录** - 实习成果截图(如系统界面、代码片段) - 单位评价表扫描件 --- #### 二、示例片段(技术实践部分) ```markdown ### 2.3 自动化测试实践 在订单模块开发中,采用JUnit+Mockito完成以下工作: 1. 编写边界值测试用例,覆盖支付金额$[0, 10^6]$的异常检测 2. 通过持续集成实现测试自动化,将单次构建时间从15分钟缩短至3分钟 3. 发现并修复3个并发场景下的线程安全问题 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值