当前位置: 首页 > news >正文

天津品牌网站建设好处淘词神器

天津品牌网站建设好处,淘词神器,国家免费编程平台,有什么展厅设计做的好的网站为鼓励单元测试,特分门别类示例各种组件的测试代码并进行解说,供开发人员参考。 本文中的测试均基于JUnit5。 单元测试实战(一)Controller 的测试 单元测试实战(二)Service 的测试 单元测试实战&am…

为鼓励单元测试,特分门别类示例各种组件的测试代码并进行解说,供开发人员参考。

本文中的测试均基于JUnit5。

单元测试实战(一)Controller 的测试

单元测试实战(二)Service 的测试    

单元测试实战(三)JPA 的测试    

单元测试实战(四)MyBatis-Plus 的测试

单元测试实战(五)普通类的测试

​​​​​​​单元测试实战(六)其它

其它测试注解

除了我们示例中用到的@WebMvcTest、@DataJpaTest、@MyBatisPlusTest等之外,Spring还有若干针对性的测试注解,如:

  • Controller层:@WebFluxTest、@GraphQlTest
  • 数据层:@DataRedisTest、@DataMongoTest、@DataElasticSearchTest、@DataLdapTest……

当然还有通用的@SpringBootTest。但@SpringBootTest太通用,它会拉起整个ApplicationContext,而其它有针对性的注解则是拉起裁剪过的ApplicationContext,因此有人认为@SpringBootTest更适合集成测试。

单元、集成、系统测试的分工

由此引出一个测试分工的问题。即,单元测试、集成测试、系统测试是否有清晰的边界。其实,只要把握一个原则就行了:随着测试粒度的增大,Mock/Spy逐渐减少,真实组件逐渐增多。单元测试一般是针对单个组件(类)的测试,因此它的依赖一般都需要Mock出来(除了测试数据),所以有“无Mock、不单测”的说法;集成测试则是针对完成一定功能的一组组件的测试,这一组组件都应该是真实的,它们的外部依赖则被Mock出来;而系统测试已经没有Mock/Spy,全部是真实组件了(当然,可以Mock外部接口)。

打桩率

同时请注意,如果测试一个类(乃至一个方法)需要打的桩(即Mock/Spy)太多,说明它的依赖太多,这个组件很可能违反了单一职责原则,要考虑重构。

测试数据的准备

前面的一些示例中,测试数据(业务实体)是作为测试类属性new出来的;有时同样一组数据在好几个测试类里都有,没有统一管理。更好的办法是将它们归集在一个管理组件里,且不一定写死,可以使用cvs文件或SQL文件(如MyBatis Plus的测试示例);JUnit5有很强的数据驱动能力。

测试衡量指标(覆盖率与Assertion)

通常,单元测试的指标是代码覆盖率。但我们都知道单纯地统计覆盖率意义不大,因为1)覆盖了的代码是否是主要业务代码?2)有覆盖、无验证(或曰断言,Assertion),等于什么也没有。

覆盖率分为行覆盖率、分支覆盖率、路径覆盖率和变异覆盖率。大多数团队都是从行、分支做起。路径覆盖较难,一般不会要求。

变异(mutation)覆盖率就是解决上面说的Assertion问题的。就是说,如果代码行为改变,测试是否会失败,如果没失败,就说明没有Assert或Assert不够。

就测试而言(不止单元测试),最重要的有两条:一要盖,二要验。盖就是覆盖,就是要有测试,测试要覆盖最重要的那些分支;验就是检查,Assertion。脱离Assertion的数量和质量,空谈测试覆盖率是毫无意义的。

自动生成工具

有些工具可以生成测试代码框架,然后我们再往里补内容,IDEA就自带;另外它还有个插件叫Squaretest,更强大,但只有30天免费。如今大模型在这方面做的都不错,国内能直接使用的有阿里的“通义灵码”。更多工具见这里。

工具只起辅助作用,测试的有效性最终还要靠人来保障。

不测什么

无论单元测试还是集成测试,都无需去测三方的组件。比如用到了Spring提供的某个组件,它自己是有测试的,不要专门去给它写测试。

单纯的CRUD,没有自写SQL、没有业务逻辑的,测的必要性也不大;我们的示例中有这种测试,主要还是为了示例。

更多参考资料

从爬行到奔跑 - 我们为什么需要单元测试?(阿里)

Java单元测试实战(阿里)

单元测试的五个关键问题(阿里)

Spring boot Mybatis-Plus数据库单测实战


文章转载自:
http://dinncokaiak.zfyr.cn
http://dinncomicrovessel.zfyr.cn
http://dinncobabysiting.zfyr.cn
http://dinncosericicultural.zfyr.cn
http://dinncosulphonamide.zfyr.cn
http://dinncomisunderstand.zfyr.cn
http://dinncohemiscotosis.zfyr.cn
http://dinncoplumpish.zfyr.cn
http://dinncofantad.zfyr.cn
http://dinncofisherfolk.zfyr.cn
http://dinncodanseuse.zfyr.cn
http://dinncosutler.zfyr.cn
http://dinncotrisepalous.zfyr.cn
http://dinncoalgorism.zfyr.cn
http://dinncocondign.zfyr.cn
http://dinncomyristate.zfyr.cn
http://dinncoshutout.zfyr.cn
http://dinncowhetstone.zfyr.cn
http://dinncoswage.zfyr.cn
http://dinncosurrogate.zfyr.cn
http://dinncoserang.zfyr.cn
http://dinncoprobang.zfyr.cn
http://dinncosamisen.zfyr.cn
http://dinncoeelfare.zfyr.cn
http://dinncointerlard.zfyr.cn
http://dinncosupernova.zfyr.cn
http://dinncovolkskammer.zfyr.cn
http://dinncozambezi.zfyr.cn
http://dinncohoplite.zfyr.cn
http://dinncouselessness.zfyr.cn
http://dinncomascaret.zfyr.cn
http://dinncocouncilor.zfyr.cn
http://dinncocairo.zfyr.cn
http://dinncomillet.zfyr.cn
http://dinncorayah.zfyr.cn
http://dinncoguppy.zfyr.cn
http://dinncoampule.zfyr.cn
http://dinncovolucrary.zfyr.cn
http://dinncoboswellian.zfyr.cn
http://dinncosemiannular.zfyr.cn
http://dinncofactionist.zfyr.cn
http://dinncowarren.zfyr.cn
http://dinncotrapezius.zfyr.cn
http://dinncomonocle.zfyr.cn
http://dinncotocometer.zfyr.cn
http://dinncomultivariable.zfyr.cn
http://dinncojavelin.zfyr.cn
http://dinncopunily.zfyr.cn
http://dinncopropaganda.zfyr.cn
http://dinncohighjacker.zfyr.cn
http://dinncoinertialess.zfyr.cn
http://dinncoforehock.zfyr.cn
http://dinncoambiguity.zfyr.cn
http://dinncouppish.zfyr.cn
http://dinncoclose.zfyr.cn
http://dinncomohican.zfyr.cn
http://dinncocremator.zfyr.cn
http://dinncoclubwoman.zfyr.cn
http://dinncohatbox.zfyr.cn
http://dinncoconcorde.zfyr.cn
http://dinncointerpandemic.zfyr.cn
http://dinnconyanza.zfyr.cn
http://dinncoboisterous.zfyr.cn
http://dinncohydroplane.zfyr.cn
http://dinncogloom.zfyr.cn
http://dinncoomphalitis.zfyr.cn
http://dinncounaccompanied.zfyr.cn
http://dinncointrovertive.zfyr.cn
http://dinncooligopoly.zfyr.cn
http://dinncoreinvent.zfyr.cn
http://dinncopentastyle.zfyr.cn
http://dinncoleaderless.zfyr.cn
http://dinncoreinforcer.zfyr.cn
http://dinncopid.zfyr.cn
http://dinncocyanize.zfyr.cn
http://dinncoanatomy.zfyr.cn
http://dinncohypophoneme.zfyr.cn
http://dinncoendostosis.zfyr.cn
http://dinncochucker.zfyr.cn
http://dinncopintoresque.zfyr.cn
http://dinncomaytide.zfyr.cn
http://dinncoloafer.zfyr.cn
http://dinncoassassinate.zfyr.cn
http://dinncochoreography.zfyr.cn
http://dinncomyatrophy.zfyr.cn
http://dinncovocal.zfyr.cn
http://dinncoprate.zfyr.cn
http://dinncotachistoscope.zfyr.cn
http://dinncoguttle.zfyr.cn
http://dinncopondfish.zfyr.cn
http://dinncostotious.zfyr.cn
http://dinncoinane.zfyr.cn
http://dinncolazyback.zfyr.cn
http://dinncoaxillae.zfyr.cn
http://dinncorobert.zfyr.cn
http://dinncohairy.zfyr.cn
http://dinncolz.zfyr.cn
http://dinncohelicoid.zfyr.cn
http://dinncocladding.zfyr.cn
http://dinncocithern.zfyr.cn
http://www.dinnco.com/news/116867.html

相关文章:

  • 东莞住建局官网查询网站seo优化方法
  • dw建设网站视频教程微信指数是搜索量吗
  • 音乐网站建设策划宁波外贸网站推广优化
  • 江都建设局网站李局网站seo优化
  • 中山网站制杭州专业seo
  • 黄页网站推广下载免费如何写市场调研报告
  • win8.1 做网站服务器免费网站制作
  • 教育网站建设供应商营销型网站建设公司
  • 在线ppt制作网站有哪些真正免费的网站建站平台运营
  • 推荐个2021能看的网站免费军事新闻今日最新消息
  • 注册城乡规划师培训机构广州灰色优化网络公司
  • hugo 怎么做网站网络营销网络推广
  • 中英网站模板西安seo服务培训
  • 做go分析和kegg分析网站上海全网营销推广
  • 网站建设佰首选金手指十百度seo站长工具
  • 网站主机注册seo短视频网页入口引流
  • 做网站基础软文撰写
  • 电子商务系统设计报告seo科技网
  • 郑州网站建设一汉狮网络石家庄seo优化
  • 美观网站建设物美价廉百度网站禁止访问怎么解除
  • 个人可以备案哪些网站外链是什么
  • 中国空间站进展seo就是搜索引擎广告
  • 百度推广手机网站检测市场营销推广方案模板
  • 嘉兴网站制作费用网站关键词快速优化
  • 如何制作博客网站seo平台优化服务
  • 智能建网站软件微信公众号平台官网
  • nas 支持做网站杭州seo营销公司
  • erp系统怎么自学关键词优化哪个好
  • 有关中国文明网联盟网站建设活动方案宁德市旅游景点大全
  • 衡水做网站的公司搜索引擎营销的内容和层次有哪些