1.概述

在这篇简短的文章中,我们将重点讨论如何使用Mockito模拟最终的类和方法。

与关注Mockito框架的其他文章一样(比如5验证,5当/,5的模拟方法)我们将使用MyList类作为测试用例中的协作者,如下所示。

我们将为本教程添加一个新方法:

public class MyList extends AbstractList {final public int finalMethod() {return 0;}}

我们也用a来扩展它最后子类:

public final class FinalList extends MyList {@Override public int size() {return 1;}}

2.为最终方法和类配置Mockito

在使用Mockito模拟最终的类和方法之前,需要对它进行配置。

我们需要添加一个文本文件到项目src /测试/资源/ mockito-extensions目录命名org.mockito.plugins.MockMaker并添加一行文字:

mock-maker-inline

5检查扩展加载配置文件时的目录。这个文件支持对最终方法和类的模拟。

3.模仿最终方法

一旦正确配置了Mockito,最终的方法就可以像其他方法一样被嘲弄:

@Test public void whenMockFinalMethodMockWorks() {MyList MyList = new MyList();MyList mock = mock(MyList.class);当(mock.finalMethod ()) .thenReturn (1);myList.finalMethod assertNotEquals (mock.finalMethod () ());}

通过创建一个具体实例和模拟实例MyList的两个版本返回的值可以进行比较finalMethod ()并验证是否调用了mock。

4.模拟最后一节课

模仿final类就像模仿任何其他类一样简单:

@Test public void whenMockFinalClassMockWorks() {finalist finalist = new finalist ();FinalList mock = mock(FinalList.class);当(mock.size ()) .thenReturn (2);finalList.size assertNotEquals (mock.size () ());}

与上面的测试类似,我们创建最后类的一个具体实例和一个模拟实例,模拟一个方法,并验证模拟实例的行为是否不同。

5.结论

在本快速教程中,我们介绍了如何通过使用Mockito扩展来模拟最终的类和方法。

像往常一样,我们可以找到完整的例子在GitHub

通用的底部

开始使用Spring 5和Spring Boot 2,通过学习的春天课程:

>>看看这个课程
4评论
最古老的
最新的
内联反馈
查看所有评论
对这篇文章的评论关闭!