Я тестирую Java-код со Spock. Я тестирую этот код:
try {
Set<String> availableActions = getSthAction()
List<String> goodActions = getGoodAction()
if (!CollectionUtils.containsAny(availableActions ,goodActions )){
throw new CustomException();
}
} catch (AnotherCustomExceptio e) {
throw new CustomException(e.getMessage());
}
Я написал тест:
def "some test"() {
given:
bean.methodName(_) >> {throw new AnotherCustomExceptio ("Sth wrong")}
def order = new Order();
when:
validator.validate(order )
then:
final CustomException exception = thrown()
}
И он терпит неудачу, потому что AnotherCustomExceptio
выбрасывается. Но в блоке try{}catch
я поймаю это исключение и выброшу CustomException
, поэтому я ожидал, что мой метод будет бросать CustomException
, а не AnotherCustomExceptio
. Как проверить его?