mockito 如何对调用不同类的静态方法的Java方法进行单元测试

cdmah0mi  于 2023-01-09  发布在  Java
关注(0)|答案(1)|浏览(207)

我使用普通的Java和Junit。

Class A {
       public void tesetMe(arg1, arg2) {
        arg3 = getArg3(arg1);
        B.staticMethod(arg1, arg2, arg3);
   }

   Class B {
     public static void staticMethod(String arg1, String arg2, int arg3) {
        //---
     }
   }

我正在测试类A的testMe方法。我想验证B的staticMethod是否使用arg1、arg2和arg3的特定值调用。我不能有类B类型的数据成员。我可以使用mockito,但不能使用powermock或任何其他库。我没有可以注入类B示例的容器。我有这样的容器,就像一个简单的java程序互相调用一样。

ljsrvy3e

ljsrvy3e1#

所以我查了一下这个,我认为这可以解决你的问题。你可以通过调用mockStatic函数来模拟一个静态类,这里是一个简单的例子:

MockedStatic<StaticClass> x = Mockito.mockStatic(StaticClass.class);

之后,你可以调用所有常用的函数,你会对x变量如下:

x.verify(() -> StaticClass.staticFunction("x"));

我找到了this Baeldung tutorial,也找到了一个similar question。希望这有帮助!

相关问题