gpt4 book ai didi

java - 如何模拟java类中的特定静态方法?

转载 作者:行者123 更新时间:2023-11-30 08:37:41 25 4
gpt4 key购买 nike

在我的测试类中有很多静态方法,但我只想模拟测试类的特定方法。

是否有任何方法可以让我仅模拟特定方法,而静态方法的其余部分表现正常?

以及如何为特定值 stub 方法

假设这是我的方法PowerMockito.stub(PowerMockito.method(ServiceUtils.class, "getBundle",String.class)).toReturn(bundle);

我希望 getBundle 方法对传递的不同参数有不同的行为例如:字符串可以是 abc 或 def ,因此对于每个字符串,getbundle 方法的行为应该不同。

我只是想有什么方法可以传递像“abc”这样的值,而不是 PowerMockito.method 中的 String.class。

最佳答案

您可以创建真实对象的 spy 。当您使用 spy 时,就会调用真正的方法(除非方法被 stub )。

这是官方文档中的示例。

List list = new LinkedList();
List spy = spy(list);

//optionally, you can stub out some methods:
when(spy.size()).thenReturn(100);

//using the spy calls *real* methods
spy.add("one");
spy.add("two");

//prints "one" - the first element of a list
System.out.println(spy.get(0));

//size() method was stubbed - 100 is printed
System.out.println(spy.size());

//optionally, you can verify
verify(spy).add("one");
verify(spy).add("two");

关于java - 如何模拟java类中的特定静态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37046251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com