1:Unit test and main function-Java API 实战

简介: 1:Unit test and main function-Java API 实战

1. 抛出企业问题,脱离main测试,模块化编程


main方法是什么?


  • main方法就是进入程序的一扇门,而这个门只负责开和关,打开门可以实现某些功能,但这些功能只由门里面的东西来决定,而不是门


  • main是一个程序的入口点,而不应该是处理逻辑或者功能模块的点,main方法中的语句不应该有逻辑性的语句,而且代码应该是非常之少的,更复杂的东西不应该出现在main里,应该抽离main


  //以往的方式
public static void main(String[] args) {
    //2.本地测试
    //3.调用函数
    //4.看输出,查看结果是否符合预期
    //5.预期结果和测试结果是通过人工计算的
    //1.编写功能函数(方法)
    }


2. Junit单元测试的含义和用途


在项目中也只有一个main函数,但是一个项目是由多人完成的,我们不能总是合并全部的工作测试,然后再修改,这个问题如何解决呢?


  • Junit单元测试,即测试框架


  • “单元测试”很容易想到小学的英语单词单元听写,单元就是将一个大的块头分小,测试看是否与预期相同。小学一本英语教材有100个单词,分成五个单元去背,然后老师在一定的时间内听写这个单元的单词,查看学生掌握程度,就是单元测试


  • 在面向对象的过程中也是一样,将一个程序划分成单个类和单个方法,需要对这些方法进行测试看是否达到预期


3. 怎么获取各种Jar包?Maven Repository 获取各类各个版本的jar,这就是仓库。脱离老师发送给你的jar。


Junit的Java包下载详见:maven repository-JUnit



4. 使用Junit


1.导入jar包


DomeNew一个Directory,命名为lib



将桌面上的jar包直接拖拽到lib



右键单击jarAdd as library ...



2.Junit的使用


先创建一个类专门用来对另外一个类做测试



在非测试类中编写方法, 在编写方法体时要staticreturn


   package com.study.shea;
   public class Calc {
      public static int sum (int numberA, int numberB){
          return numberA + numberB;
      }
   }


使用注释@Test调用Junit


   package com.study.shea;
   import org.junit.Test;
   public class CalcTest {
       @Test//使用这条注释来调用函数
       public void sum(){
          int sum = Calc.sum(1,2);
          System.out.println("sum = " + sum);
       }
   }


最后的预期结果会显示在原来的调试框中



遗留问题:测试的结果还是人工计算,并不是计算机帮忙完成的


5. Assert断言


在上面的操作中我们已经脱离了main方法的测试,但是还是没有脱离print打印的测试,这时就要用到Junit的断言测试方法Assert.assertEquals(),用来比较预期值与结果的差别


在这个测试过程中我们没有自己进行计算,没有使用main方法运行,也没有使用print进行打印,最后的结果就是测试的通过




但是这个测试还是十分有限的,如果只有1+2可以通过,那这个函数还是有问题的


6. 更进一步,合理编写随机测试,完善代码案例


进行随机测试,给的数是随机的,并不由人工干预,这样可以使得测试会更有说服力



同时,各测试之间互相并不干扰,subsum测试可以同时进行,当有一个测试出错时,并不会影响到另外一个函数的测试




目录
相关文章
|
2月前
|
Java API 数据处理
Java新特性:使用Stream API重构你的数据处理
Java新特性:使用Stream API重构你的数据处理
|
26天前
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。
|
27天前
|
缓存 自然语言处理 API
阿里巴巴国际站关键字搜索 API 实战:3 步搞定多语言适配 + 限流破局,询盘量提升 40%
跨境电商API开发常陷合规、多语言、限流等坑。本文详解从国际合规(GDPR/CCPA)到参数优化、数据结构化及区域化搜索的全链路方案,附Python代码模板与缓存重试架构,助力提升调用成功率至99%+,精准询盘增长42%。
|
2月前
|
供应链 监控 安全
1688商品详情API接口实战指南:合规获取数据,驱动B2B业务增长
1688商品详情API(alibaba.product.get)是合规获取B2B商品数据的核心工具,支持全维度信息调用,助力企业实现智能选品、供应链优化与市场洞察,推动数字化转型。
|
1月前
|
安全 Java 开发者
告别NullPointerException:Java Optional实战指南
告别NullPointerException:Java Optional实战指南
227 119
|
2月前
|
Java 大数据 API
Java Stream API:现代集合处理与函数式编程
Java Stream API:现代集合处理与函数式编程
227 100
|
2月前
|
Java API 数据处理
Java Stream API:现代集合处理新方式
Java Stream API:现代集合处理新方式
258 101
|
2月前
|
并行计算 Java 大数据
Java Stream API:现代数据处理之道
Java Stream API:现代数据处理之道
232 101
|
1月前
|
Cloud Native 算法 API
Python API接口实战指南:从入门到精通
🌟蒋星熠Jaxonic,技术宇宙的星际旅人。深耕API开发,以Python为舟,探索RESTful、GraphQL等接口奥秘。擅长requests、aiohttp实战,专注性能优化与架构设计,用代码连接万物,谱写极客诗篇。
Python API接口实战指南:从入门到精通
|
2月前
|
数据采集 缓存 API
小红书笔记详情 API 实战指南:从开发对接、场景落地到收益挖掘(附避坑技巧)
本文详解小红书笔记详情API的开发对接、实战场景与收益模式,涵盖注册避坑、签名生成、数据解析全流程,并分享品牌营销、内容创作、SAAS工具等落地应用,助力开发者高效掘金“种草经济”。
小红书笔记详情 API 实战指南:从开发对接、场景落地到收益挖掘(附避坑技巧)