Для записи, вы ничего не тестируете с этим тестом, так как вы высмеиваете тестируемый объект.
Ради опыта вы столкнулись с этой ошибкой, потому что метод Collection#addAll
ожидает параметр типа Collection
, тогда как вы предоставляете один из типов Iterable
.
Объект Iterable
может быть Collection
или может не быть, поэтому компилятор не может обеспечить безопасность типов этого кода.
Один из способов проверить, что ваш смоделированный метод вызывается с правильными аргументами, - это использовать ArgumentCaptor
.
Collection<String> collection = Mockito.mock(Collection.class);
collection.addAll(Lists.newArrayList("hello"));
ArgumentCaptor<Collection<String>> methodParameterCaptor = ArgumentCaptor.forClass(Collection.class);
Mockito.verify(collection).addAll(methodParameterCaptor.capture()); // same as writing verify(collection, times(1)).add ...
assertThat(methodParameterCaptor.getValue()).containsOnly("hello");