mockito 参考模拟静态空隙法

bjg7j2ky  于 2022-11-08  发布在  其他
关注(0)|答案(1)|浏览(176)

我一直在寻找一些模仿静态void方法的例子,但是没有找到。要么我们有模仿静态方法的例子,要么我们有模仿void方法的例子。
请分享任何参考或相同的例子。
PS:我用的是Mockito-inline 3.6.28

hgtggwj0

hgtggwj01#

Mockito.mockStatic()thenAnswer()配合使用。
假设您想模拟这个hello()方法:

public class ClassToMock {

    public static void hello() {
        System.out.println("hello");
    }
}

你可以这样写一个测试:

@Test
public void testStaticHello() {

    ClassToMock.hello(); // Prints "hello"

    try (MockedStatic<ClassToMock> staticMock = Mockito.mockStatic(ClassToMock.class)) {

        staticMock.when(() -> ClassToMock.hello())
                .thenAnswer(ignore -> {
                    System.out.println("Mocked");
                    return null;
                });

        ClassToMock.hello();  // Prints "Mocked"
    }
}

相关问题