没有演员阵容的集合参数的Hamcrest匹配器

时间:2018-03-20 10:38:23

标签: java mockito hamcrest

我有一个类型:

class SomeType {}

我有一种方法可以使用MockitoHamcrest进行模拟:

class SomeService {
    public List<SomeType> doSomething(List<SomeType> producer) {
        ...
    }
}

如果传递doSomething()并且该列表包含至少一个指定元素,我需要模拟java.util.List方法。 现在我使用强制转换来编译:

when(someService.doSomething(
    ((List<SomeType>) MockitoHamcrest.<List<SomeType>>argThat(CoreMatchers.hasItem(mySomeType))))
.thenReturn(emptyList());

但我想在没有演员表的情况下使其安全。有办法进行这样的检查吗?

1 个答案:

答案 0 :(得分:0)

很抱歉,即使您将生产方法参数更改为[(visible)]="visibleSidebar2",也无法避免此播放,因为人们可能认为这可能会有所帮助,因为Iterable<SomeType>会返回argThat