Метод ниже имеет 3 возможных пути: 1. True, 2. False, 3. Exception.
Чтобы проверить это, мне нужно смоделировать частный getWootsWithAvailableProducts
для путей True
и Exception
. Однако коллективный разум, кажется, говорит о том, что вы не должны издеваться над частными методами. Как еще я могу проверить эти пути, если я не издеваюсь над частным методом и не слежу за ним для проверки. Если это все правда, то почему так сложно издеваться над приватными методами. Если это не так, что я упускаю?
Тестируется:
public List<Woot> findAllWoots(final boolean isBuy) throws Exception {
final List<Woot> allWoots = wootService.findAllWoots();
return isBuy ? getWootsWithAvailableProducts(allWoots) : allWoots;
}
Дополнительные сведения:
getWootsWithAvailableProducts
вызывает общедоступную службу, которая делает сетевой запрос. Таким образом, я могу имитировать фактический класс обслуживания и предотвратить появление любых сетевых запросов.
private List<Woot> getWootsWithAvailableProducts(List<Woot> allWoots)
throws ServiceException {
final String stringOfWootIds = buildStringOfCommaSeparatedIDs(allWoots);
final List<Count> categoryIDs = wootSearchService
.getWootIDsOfAvailableProducts(stringOfWootIds);
return filterOnlyWootsWithAvailProducts(allCategories, categoryIDs);// also private.
}
getWootsWithAvailableProducts
? - person Nkosi   schedule 16.03.2018