type
status
date
slug
summary
tags
category
icon
password
1、什么是Mockito?
答:Mockito是一个在Java中进行单元测试的框架,主要用于模拟(Mock)和校验对象的行为。
2、为什么我们需要使用Mockito?
答:Mockito能帮助我们创建和配置mock对象,以便在我们的单元测试中使用。它让我们能够测试对象间的互动而不是测试数据。
3、如何使用Mockito创建一个mock对象?
答:可以通过调用Mockito.mock()方法来创建一个mock对象。
4、如何在Mockito中定义当调用一个方法时返回特定的结果?
答:可以使用Mockito.when()方法定义当调用一个方法时返回特定的结果。
5、如何在Mockito中验证一个方法是否被调用?
答:可以使用Mockito.verify()方法验证一个方法是否被调用。
6、Mockito中的Spy是什么?
答:Spy是一种特殊的Mock对象,对其进行打桩不会影响真实方法的调用。
7、如何在Mockito中创建一个spy对象?
答:可以通过Mockito.spy()方法来创建一个spy对象。
8、什么是Mockito的参数匹配?
答:参数匹配允许在打桩或验证时灵活地处理参数,Mockito提供了诸如any(), eq()等参数匹配器。
9、如何在Mockito中捕获方法的参数值?
答:可以使用ArgumentCaptor来捕获方法的参数值。
10、如何在Mockito中执行方法的连续调用?
答:可以使用thenAnswer()或者thenCallRealMethod()实现方法的连续调用。
11、Mockito的any()和eq()方法有什么区别?
答:any()匹配任何值,而eq()匹配特定的值。
12、Mockito中的verifyZeroInteractions()和verifyNoMoreInteractions()有什么区别?
答:verifyZeroInteractions()验证对象没有进行过任何交互,而verifyNoMoreInteractions()验证对象没有进行过除已验证以外的任何交互。
13、如何在Mockito中抛出一个异常?
答:可以使用thenThrow()方法来在方法调用时抛出一个异常。
14、如何在Mockito中测试void方法?
答:可以使用doThrow(), doAnswer(), doNothing(), doReturn()等方法来测试void方法。
15、如何在Mockito中重置mock?
答:可以使用Mockito.reset()方法来重置mock。
16、如何在Mockito中使用回调?
答:可以使用thenAnswer()方法来使用回调。
17、如何在Mockito中进行部分模拟?
答:可以使用spy对象进行部分模拟,spy对象会调用真实的方法,除非该方法被显式打桩。
18、如何在Mockito中模拟静态方法?
答:在Mockito 3.4.0之后,可以使用Mockito.mockStatic()方法来模拟静态方法。
19、如何在Mockito中模拟final类或方法?
答:在Mockito 2.1.0之后,可以模拟final类或方法,但需要在配置文件中启用此功能。
20、如何在Mockito中模拟构造函数?
答:在Mockito 3.4.0之后,可以使用Mockito.mockConstruction()方法来模拟构造函数。
- 作者:奥利弗
- 链接:https://www.aolifu.org/article/mockito
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。