У меня есть функция:
public class Cache {
(...)
public void removeAllIf(Predicate<Product> predicate) {
(...)
}
}
И я звоню productsCache.removeAllIf(Product::isChecked);
В настоящее время я проверяю это с
then(productsCache).should().removeAllIf(any(Predicate.class));
, ноэто не точно (не тестирование, если переданная лямбда Product::isChecked
).Вторая проблема заключается в том, что я получаю сообщение lint: Непроверенное назначение .
Это лучшее решение?
Отредактировано:
Я не хочу тестировать removeAllIf
реализацию функции.Я хочу проверить, был ли removeAllIf
вызван с правильным аргументом.
Сценарий для проверки:
public class Repository {
public void removeCheckedProducts() {
remoteDataSource.removeCheckedProducts();
localDataSource.removeCheckedProducts();
cache.removeAllIf(Product::isChecked);
}
}
Модульный тест:
@Test
public void removeCheckedProducts() {
//when
repository.removeCheckedProducts();
//then
then(remoteDataSource).should().removeCheckedProducts();
then(localDataSource).should().removeCheckedProducts();
then(cache).should().removeAllIf(any(Predicate.class));
}