捕获参数传递到powermockito中的存根



如何捕获(出于断言目的)传递给静态存根方法调用的参数?

方法BeingStubbed看起来是这样的。。。

public class SomeStaticClass{
protected static String methodBeingStubbed(Properties props){
...

我正在存根方法调用,因为我需要验证它是否被调用。。。

PowerMockito.stub(PowerMockito.method(SomeStaticClass.class, "methodBeingStubbed")).toReturn(null);
PowerMockito.verifyStatic();

但我现在也想知道传递给这个"methodBeingStubbed"的属性是什么,并断言它是预期的

在调用verifyStatic之后,您需要实际调用要验证的方法,如这里的文档所示:

PowerMockito.verifyStatic(Static.class);
Static.thirdStaticMethod(Mockito.anyInt());

在这一点上,您可以使用Mockito论点捕获器,如所示(但未测试):

ArgumentCaptor<Properties> propertiesCaptor =
    ArgumentCaptor.forClass(Properties.class);
PowerMockito.verifyStatic(SomeStaticClass.class);
SomeStaticClass.methodBeingStubbed(propertiesCaptor.capture());
Properties passedInValue = propertiesCaptor.getValue();

如果您习惯于@Mock注释,或者需要捕获泛型(如List<String>),您可能也有兴趣使用@Captor注释。

相关内容

  • 没有找到相关文章

最新更新