Junit4 + Mockito进行单元测试实战案例

这篇具有很好参考价值的文章主要介绍了Junit4 + Mockito进行单元测试实战案例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


实战代码案例:

1,引入依赖

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <version>2.1.0.RELEASE</version>
            </dependency>
引入spring-boot-starter-test依赖就好,因为此版本的框架中默认集成了Junit4Mockito

2,引入插件TestMe

​​​​​​​​​​​testme插件,单元测试,junit,java
注意:idea2021.3.3之前的版本都搜索不到这个插件。

3,单元测试代码编写

使用TestMe自动生成单元测试代码:

public class UserServiceImplTest {
    //创建模拟对象
    @Mock
    UserManager userManager;
    //注入mock对象
    @InjectMocks
    UserServiceImpl userServiceImpl;

    @Before
    public void setUp() {
        //使@Mock和@InjectMocks对象生效
        MockitoAnnotations.initMocks(this);
    }

    @Test
    public void testGetUserByUid() throws Exception {
        User user = new User();
        user.setUid(2055755111L);
        user.setCountryId(1);
        //设置模拟对象的行为
        when(userManager.getUserByUid(111L)).thenReturn(user);
        //执行代码
        User user = userServiceImpl.getUserByUid(111L);
        //断言结果是否符合预期
        Assert.assertNotNull(user);
    }
}
public class UserServiceImpl{
    @Autowired
    UserManager userManager;
    public User getUserByUid(Long uid) {
      //Some logics
      User user = userManager.getUserByUid(111L);
      //Another logics
    }
}

4,自动化执行单元测试

不是自动化执行的单元测试都是无意义的,项目中那么多单测,难道一个一个点吗?
引入maven-surefire-plugin插件用于自动化执行单测。

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.1</version>
                <configuration>
                    <includes>
                        <include>com.user.service.UserServiceImpl</include>                   
                    </includes>
                </configuration>
            </plugin>

include里表示需要进行执行的单测类,可以定义一大批类,如:**/*Tests.java(所有以 “Test” 结尾的 Java 文件)。
执行maven命令:

mvn clean test   先清除旧的编译项目,在运行test内容。

target下surefire-reports下可以看到刚刚运行的单测测试报告。
testme插件,单元测试,junit,java

5,生成测试率覆盖报告

命令:

mvn cobertura:cobertura

site下的index.html即可看到覆盖率报告。
testme插件,单元测试,junit,java
大概长这样:
testme插件,单元测试,junit,java

文章来源地址https://www.toymoban.com/news/detail-595495.html

到了这里,关于Junit4 + Mockito进行单元测试实战案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Boot使用JUnit和Mockito进行Service层单元测试

      在平时的开发当中,一个项目往往包含了大量的方法,可能有成千上万个。如何去保证这些方法产生的结果是我们想要的呢?那么在SpringBoot项目中我们是如何对Service层的方法进行测试的呢?   单元测试是一种软件测试方法,用于测试代码的最小可测试单元。在Java开发

    2024年02月03日
    浏览(41)
  • 【单元测试】Junit 4(三)--Junit4断言

    ​ **断言(assertion)**是一种在程序中的一阶逻辑(如:一个结果为真或假的逻辑判断式),目的为了表示与验证软件开发者预期的结果——当程序执行到断言的位置时,对应的断言应该为真。若断言不为真时,程序会中止执行,并给出错误信息。 这里我们直接上例子 接下来我们

    2024年02月08日
    浏览(42)
  • Junit4单元测试的使用

    导入Junit4依赖 要使用单元测试,首先我们得在项目中导入Junit4的jar包。 普通导入方式 ,在项目目录下创建一个lib文件夹,然后将Junit4的jar复制进来,然后右键点击Add as Library 将jar设为依赖。 在这里插入图片描述 Maven项目导入方式 ,在maven的配置文件pom.xml直接添加依赖坐标

    2024年02月13日
    浏览(29)
  • Junit4入门之什么是单元测试?

    干了一年多的后端了,从来没有了解过 单元测试 。虽然我知道测试不仅仅是测试们的任务,后端也要进行自测来保证自己的代码的可用性,但我一直都只是用postman来实施的,调用调通了即可。虽然我也知道Junit是用于测试的软件,项目里也引入过,但真的就只是点到为止,

    2024年03月18日
    浏览(63)
  • Java高级技术 单元测试(JUnit4)

    所谓单元测试,就是针对最小的功能单元,编写测试代码对其进行正确性测试。 我们之前一直使用的测试便是通过main方法来实现,但在main方法中写测试代码有如下的几个问题存在: 只能在main方法编写测试代码,去调用其他方法进行测试。 无法实现自动化测试,一个方法测

    2024年02月03日
    浏览(37)
  • 浅谈java单元测试框架junit4/5

    junit是一个开源的Java语言的单元测试框架。目前junit主要有版本junit3,junit4和junit5。因在junit3中,是通过对测试类和测试方法的命名来确定是否是测试,且所有的测试类必须继承junit的测试基类TestCase,所以本文不再讨论junit3,只讨论使用比较多的junit4和junit5。 提供注解标识测

    2024年02月03日
    浏览(29)
  • 【SpringBoot】mockito+junit 单元测试

    CommonServiceImpl 在方法 getSourceCodeMap() 调用了 ServiceA 的方法 list(QueryBO queryBo) 。 org.mockito.exceptions.base.MockitoException: No tests found in ClientSyncServiceImplTest Is the method annotated with @Test? Is the method public? 解决方案: Test引入 org.junit.Test 不要引入 org.junit.jupiter.api.Test 例如获取当前用户 moc

    2024年02月09日
    浏览(27)
  • Junit5+Mockito单元测试详解

    1.宏观层面:AIR原则 A:Automatic(自动化) 全自动执行,输出结果无需人工检查,而是通过断言验证。 I:Independent(独立性) 分层测试,各层之间不相互依赖。 R:Repeatable(可重复) 可重复执行,不受外部环境( 网络、服务、中间件等)影响。 2.微观层面:BCDE原则 B: Bord

    2024年01月17日
    浏览(33)
  • JUnit 5单元测试(三)—— Mockito 模拟

    上一篇讲了 JUnit 5单元测试(二)—— 断言,书接上文开始 JUnit 5单元测试(三)—— Mockito 模拟 想象下面这几种情况你该怎么单元测试: 1.A方法去数据库查询了数据进行了一些处理,该怎么单元测试; 2.在微服务项目中,A方法中调用了远程微服务B方法(或者B方法还没写好

    2024年02月15日
    浏览(37)
  • Java单元测试浅析(JUnit+Mockito)

    Java测试我们应该都遇到过,一般我们会被要求做单元测试,来验证我们代码的功能以及效率。 这里来和大家一起探讨下有关单于测试。 是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单

    2024年02月06日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包