首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Mockito没有使用thenThrow抛出异常

Mockito是一个用于Java开发的开源测试框架,用于模拟对象的行为和生成测试数据。它可以帮助开发人员进行单元测试,特别是在测试过程中模拟依赖项的行为。

在Mockito中,我们可以使用when方法来定义模拟对象的行为。通常情况下,我们可以使用thenReturn方法来指定模拟方法的返回值。然而,Mockito确实没有直接提供thenThrow方法来抛出异常。

要在Mockito中模拟抛出异常,我们可以使用doThrow方法结合when方法来实现。下面是一个示例:

代码语言:java
复制
import static org.mockito.Mockito.*;

// 创建模拟对象
List<String> mockedList = mock(List.class);

// 定义模拟对象的行为
doThrow(new RuntimeException()).when(mockedList).clear();

// 调用模拟对象的方法
mockedList.clear(); // 这里会抛出RuntimeException

在上面的示例中,我们创建了一个List的模拟对象mockedList,并使用doThrow方法定义了当调用clear方法时抛出RuntimeException异常。然后,我们调用了mockedList.clear()方法,会触发异常的抛出。

Mockito的这种异常抛出方式可以帮助我们模拟在特定情况下的异常场景,从而进行相应的测试和处理。

关于Mockito的更多信息和用法,请参考腾讯云的相关产品和文档:

请注意,以上提到的腾讯云产品仅作为示例,不代表对其他品牌商的推荐或评价。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SpringBoot - 单元测试利器Mockito入门

文章目录 Mock 测试 What's Mockito 使用 Mockito pom依赖 Demo Code 【常规操作】 【Mockito】 thenReturn thenThrow verify...---- What’s Mockito Mockito 是一种 Java Mock 框架,主要就是用来做 Mock 测试的,它可以模拟任何 Spring 管理的 Bean、模拟方法的返回值、模拟抛出异常等等...(new User()); //会返回100 ---- thenThrow 当调用 userService 的 getUserById() 时的参数是 9 时,抛出一个 RuntimeException...user = userService.getUserById(9); //会抛出一个RuntimeException 如果方法没有返回值的话(即是方法定义为 public void myMethod(...注意事项 上述就是 Mockito 的 Mock 对象使用方法,不过当使用 Mockito 在 Mock 对象时,有一些限制需要遵守: 不能 Mock 静态方法 不能 Mock private 方法

16.5K42
  • 刷我di卡,异常测试

    Mock.thenThrow 异常处理的测试在系统测试中是比较麻烦的事情。譬如要制造网络中断、通讯超时、输入异常值等来触发预定义的异常。...但是在单元测试中,通过Mockito可以非常低成本地来触发异常情况,实现对于异常测试的支持。 首先来修改一下StockService的接口,来增加抛出异常的申明。...public class BizException extends RuntimeException 这里可以假设,例如在调用这个接口时,出现了没有这个股票或者其它网络通信层面的异常情况,就会抛出自定义的...of stock service to return the value of various stocks when(stockService.getPrice(teslaStock)) .thenThrow...isInstanceOf(BizException.class) .hasMessageContaining("stockServiceException"); } 通过 when().thenThrow

    35520

    php 抛出异常使用场景

    如果异常没有被捕获,而且又没用使用 set_exception_handler() 作相应的处理的话,那么将发生一个严重的错误(致命错误),并且输出 “Uncaught Exception” (未捕获异常...使用多个 catch 代码块可以捕获不同种类的异常。 可以在 try 代码块内的 catch 代码块中抛出(再次抛出异常。 简而言之:如果抛出异常,就必须捕获它。...如果一个异常没有被捕获,而且又没用使用set_exception_handler()作相应的处理的话,那么 PHP 将会产生一个严重的错误,并且输出未能捕获异常(Uncaught Exception …...在PHP中任何自身的错误或者是非正常的代码都会当做错误对待,并不会以异常的形式抛出,但是也有一些情况会当做异常和错误同时抛出(据说是,我没有找到合适的例子)。...,也就是说不管你抛出异常没有人捕获,如果没有人捕获就会进入到该方法中,并且在回调函数调用后异常会中止。

    1.9K30

    PowerMock(一):PowerMock的使用

    环境 引入依赖 注解说明 mock普通方法 mock抛出异常 mock新建对象 mock无返回值的方法 mock被final修饰的方法 参数模糊匹配 mock静态方法 mock私有方法 总结 参考 为啥要使用...单元测试中我们有时候需要mock异常抛出,其mock的方式也很简单就是在thenThrow(new Exception())写入你期待抛出异常。...如果被mock的方法抛出的是受检异常(checked exception)的话,那么thenThrow抛出new Exception()或者其子类。...如果被mock的方法抛出的是非受检异常(unchecked exception),那么thenThrow抛出new RuntimeException或其子类。...(new Exception()); 这里delUser方法抛出的是受检异常Exception,所以在thenThrow中需要new一个Exception对象。

    7.6K71

    SpringBoot 单元测试利器-Mockito

    Mockito 是一种 Java mock 框架,他主要是用来做 mock 测试的,他可以模拟任何 Spring 管理的 bean、模拟方法的返回值、模拟抛出异常...等,在了解 Mockito 的具体用法之前...管理的 bean、模拟方法的返回值、模拟抛出异常...等,他同时也会记录调用这些模拟方法的参数、调用顺序,从而可以校验出这个 mock 对象是否有被正确的顺序调用,以及按照期望的参数被调用 像是 Mockito...(new User()); //会返回100 thenThrow 系列方法 当调用 userService 的 getUserById() 时的参数是 9 时,抛出一个 RuntimeException...user = userService.getUserById(9); //会抛出一个RuntimeException 如果方法没有返回值的话(即是方法定义为public void myMethod(...Mockito 的限制 上述就是 Mockito 的 mock 对象使用方法,不过当使用 Mockito 在 mock 对象时,有一些限制需要遵守 不能 mock 静态方法 不能 mock private

    2.8K10

    纳尼,Mock void ?

    在某些情况下,会使用void 类型的方法来完成一些工作。因此,在单元测试中,也可能会面对它。...在之前的案例中,笔者介绍了两种Mock的场景: 1)在给定输入参数的情况下给出需要的输出结果(返回值) 2)在给定输入参数的情况下方法抛出某种类型的异常 对于被Mock的某个对象的void方法来说,对于之前的第一种场景是没有意义的...不过它也有如下的两种测试场景: 1)验证程序的行为-该void方法是否被调用 2)在给定输入参数的情况下方法抛出某种类型的异常 譬如在之前的StockService中增加print方法,并申明为void...when(stockService.print(teslaStock)).thenThrow(new BizException(ep)); 因此,Mockito提供了doThrow的方式来解决,类似还要...通过这个测试用例,就展示了如何针对void方法抛出异常的情况进行测试了。

    63210

    Mockito 一个优秀的 Mock 测试框架

    那有没有什么办法我们可以跳过或者说模拟方法 B 的输出呢?这就引出了我们今天的主角 Mockito,一个优秀的 Mock 测试框架。...Mockito 是一个很好用的模拟框架。它让您可以使用干净简单的 API 编写漂亮的测试。Mockito 的可读性非常好,不会让你感动迷惑,产生的验证错误也很明确。...add("test2"); 测试用例 2 通过设值或者打桩的方式预设参数,如下所示,当执行 get(0) 操作时,我们通过 thenReturn()方法返回 hello,当执行 get(1)操作时我们抛出空指针异常...get(0) 操作 verify(mockedList).get(0); } 可以看到当我们调用 get(0) 和 get(1) 的时候控制台成功的抛出异常。...还有很多 API 可以使用,更多的使用方式,大家可以参考这面这个网站。

    1.7K20

    Java单元测试框架之Mockito指南

    一、 行为验证 一旦 mock 对象被创建了,mock 对象会记住所有的交互,然后你就可以选择性的验证你感兴趣的交互,验证不通过则抛出异常。...// 验证方法至少被使用1次 Mockito.verify(mockList, Mockito.atLeast(1)).size(); // 验证方法没有使用 Mockito.verify...doReturn(true).when(mockList).add("test2"); System.out.println(mockList.add("test2")); //true// 设置方法调用抛出异常...基于实现类创建 mock 对象,否则在没有 stub 的情况下,调用真实方法时,会出现异常。 注意点: Mockito 并不会为真实对象代理函数调用,实际上它会拷贝真实对象。...中文文档 (部分):单元测试利器-Mockito 中文文档_mockito官网文档-CSDN博客 Mockito 使用教程:Mockito教程 - 明-Ming - 博客园 参数捕获器使用:https

    2.5K11

    走进Java接口测试之Mock(概念篇)

    场景二:异常数据难模拟,当需要测试接口一些异常数据,接口正常情况是否无法提供异常数据的。那么如何简便地构造接口的异常数据? 场景三:依赖接口性能参数无法保障。...Mock 一个对象 此处使用Mockito示例 Mockito 是 GitHub 上使用最广泛的 Mock 框架,并与 JUnit 结合使用Mockito 框架可以创建和配置 mock 对象。...使用 Mockito 简化了具有外部依赖的类的测试开发。 ?...除了构造对象,当然也可以对方法设定的返回值指定异常。 上述代码的意思就是当调用 list 的第二个元素的时候,抛出一个运行异常。...; //设置方法的预期返回值 when(list.get(0)).thenReturn("zuozewei"); when(list.get(1)).thenThrow

    11.2K20
    领券