当前位置:  开发笔记 > 编程语言 > 正文

模拟一个静态方法,该方法调用同一类的另一个静态方法

如何解决《模拟一个静态方法,该方法调用同一类的另一个静态方法》经验,为你挑选了1个好方法。

我必须为静态方法编写一个单元测试,该方法需要模拟同一类的另一个静态方法。样例代码:

public class A {
   public static boolean foo(){}
   public static boolean bar(){
       return foo();
   }
}

@PrepareForTest({A.class})
public ATest{
   testMethod(){
       mockStatic(A.class);
       when(A.foo()).thenReturn(true);
       assertTrue(A.bar());
   }

}

我一直在尝试对bar方法进行单元测试,但到目前为止尚未成功。

问题:调试未到达return foo();我的代码中的语句,并且断言失败。请指教。我目前无法修改代码

在模拟foo方法方面的任何帮助将不胜感激。谢谢!



1> Sabir Khan..:

在这种情况下,您不应在类stub上创建模拟,而应仅使用类中的特定方法(foo()A

public static  MethodStubStrategy stub(Method method)

上面的方法属于MemberModifierAPI中的类,并且是该类的超类,PowerMockito因此您的语法应如下所示:

PowerMockito.stub(PowerMockito.method(A.class, "foo")).toReturn(true);

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有