如果您使用的是Mockito2,可以通过支持孵化最终类和方法的新孵化功能来完成此操作。
需要注意的重点:
1.创建一个名称为“ org.mockito.plugins.MockMaker”的简单文件,并将其放置在名为“ mockito-extensions”的文件夹中。该文件夹应在类路径上可用。
2.上面创建的文件的内容应为单行,如下所示:
mock-maker-inline
为了激活模仿扩展机制并使用此选择加入功能,需要执行上述两个步骤。
示例类如下:
FinalClass.java
public final class FinalClass {
public final String hello(){
System.out.println("Final class says Hello!!!");
return "0";
}
}
Foo.java
public class Foo {
public String executeFinal(FinalClass finalClass){
return finalClass.hello();
}
}
FooTest.java
public class FooTest {
@Test
public void testFinalClass(){
// Instantiate the class under test.
Foo foo = new Foo();
// Instantiate the external dependency
FinalClass realFinalClass = new FinalClass();
// Create mock object for the final class.
FinalClass mockedFinalClass = mock(FinalClass.class);
// Provide stub for mocked object.
when(mockedFinalClass.hello()).thenReturn("1");
// assert
assertEquals("0", foo.executeFinal(realFinalClass));
assertEquals("1", foo.executeFinal(mockedFinalClass));
}
}
希望能帮助到你。
完整的文章在这里嘲笑不可嘲笑。