如何验证是否在接口的impl上调用了方法

时间:2019-03-04 17:35:45

标签: java junit

这是一个场景

public class MyService{

    public void method1(){
        method2();
    }

    private void method2(){

        List<Providers> providers = Factory.getProviders(selectionCriteria);
        providers.forEach(provider->{
            provider.method();
        })

    }
}

如何验证provider.method()被呼叫?

注意: 工厂拥有选择标准到列表的映射。 提供者实现接口并提供抽象方法的实现 我有使用PowerMock静态模拟的工厂,但是当我使用Mockito.verify(provider).method()时-我失败了

  

设置   @间谍provider1   PowerMockito.when(Factory.getProviers(Mockito.any()))。thenReturn(Arrays.asList(provider1))

Test Code

Mockito.verify(provider,Mockito.times(1))。method()

1 个答案:

答案 0 :(得分:0)

根据How to verify behavior docs,语法为:

PowerMockito.verifyStatic(Factory.class); 
Factory.getProviders(selectionCriteria);