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()方法来模拟构造函数。
OpenFeignSkyWalking
Loading...