美文网首页
微服务单元测试

微服务单元测试

作者: jackyu7788 | 来源:发表于2019-10-05 13:04 被阅读0次

什么是单元测试

单元测试是指,对软件中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作,这里的最小可测试单元通常是指函数或者类。

单元测试通常由开发工程师完成,一般会伴随开发代码一起递交至代码库。单元测试属于最严格的软件测试手段,是最接近代码底层实现的验证手段,可以在软件开发的早期以最小的成本保证局部代码的质量。

为什么要编写单元测试

单元测试在的早期就能发现问题

  • 适应变更
  • 简化集成
  • 文档记录
  • 表达设计

单元测试都是以自动化的方式执行,所以在大量回归测试的场景下更能带来高收益。

同时,你还会发现,单元测试的实施过程还可以帮助开发工程师改善代码的设计与实现,并能在单元测试代码里提供函数的使用示例,因为单元测试的具体表现形式就是对函数以各种不同输入参数组合进行调用,这些调用方法构成了函数的使用说明。

单元测试还有个好处,就是你可以为所有的产品代码类写单元测试,而不需要管它们的功能如何,或者它们在内部结构中属于哪个层次。

哪些代码需要进行单元测试

并不是所有的代码都要进行单元测试,通常只有底层模块或者核心模块的测试中才会采用单元测试。

单元测试的范围

你可以对 controller 进行单元测试,也可以用同样的方式对 repository、领域类或者文件读写类进行单元测试。

一个单元测试类至少应该测试这个类的公共接口。私有方法不能直接测试的原因是你不能从测试类直接调用它们。受保护的和包私有的方法可以被测试类直接调用(如果测试类和生产代码类的包结构是一样的),但是测试这些方法可能就太过了。

编写单元测试有一条细则:它们应该保证你代码所有的路径都被测试到(包括正常路径和边缘路径)。同时它们不应该和代码的实现有太紧密的耦合。

具体的测试方法

https://github.com/jianpingyu/spring-testing

单元测试存在的困难

影响测试策略的因素
  • 紧密耦合的代码难以隔离
  • 代码本身的可测试性较差,通常代码的可测试性和代码规模成正比
  • 代码覆盖率越往后越难提高

参考资料

单元测试-维基百科
SpringBoot Testing
测试金字塔实战
JUnit5
mockito

相关文章

  • H3BPM Controllers 单元测试(二)

    单元测试的范围代码中往往会存在一定的依赖。一个简单的业务可能会依赖于第三方服务,邮件服务、微信服务、钉钉服务等。一...

  • 技术博客汇总

    对微信公众号接口的单元测试 Github与Travis CI测试与部署 Django单元测试 NodeJs单元测试...

  • Python的接口的单元测试并自动将结果发至邮件

    流程介绍:1、搭建一个服务2、编写接口单元测试3、将单元测试生成报告并自动发送邮箱 下面开始编写单元测试:已tes...

  • Angular 单元测试实践 (3)

    对 Angular 服务的单元测试,可以分为三类: 测试同步操作 测试异步操作 测试服务依赖 在测试服务前,我们先...

  • 微服务单元测试

    什么是单元测试 单元测试是指,对软件中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作,这里的最...

  • 一文弄懂Springboot+Junit5微服务单元测试编写实践

    Springboot+Junit5微服务单元测试编写实践 现在写单元测试的重要性不言而喻,下边说明一下Junit5...

  • 单元测试之embedded-zookeeper

    背景 在微服务架构中,Zookeeper扮演着非常重要的角色,很多服务的部署、运行依赖于它。 因此,在单元测试/集...

  • 改善单元测试的新方法

    我们为什么要写单元测试? "满足需求"是所有软件存在的必要条件,单元测试一定是为它服务的。从这一点出发,我们可以总...

  • Mockito-第一篇

    开启Mockito单元测试系列,这是第一篇。本文将介绍如何用Mockito来mock一个股票服务接口,在服务尚未实...

  • 微服务架构下单元测试落地实践(下)

    相关阅读:微服务架构下单元测试落地实践(上)[https://www.jianshu.com/p/72039fe5...

网友评论

      本文标题:微服务单元测试

      本文链接:https://www.haomeiwen.com/subject/umhspctx.html