Поле проверки AssertThatThrownBy() для пользовательского исключенияJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Поле проверки AssertThatThrownBy() для пользовательского исключения

Сообщение Anonymous »

Как я могу проверить определенное значение поля в моем пользовательском исключении с помощью AssertJ?
Вот класс исключения:

Код: Выделить всё

public class SomeException extends RuntimeException {
private final Set something;

public SomeException (String message, Set something) {
super(message);

this.something = something;
}

public Set getSomething() {
return something;
}
}
Вот мой тест:

Код: Выделить всё

    assertThatThrownBy(() -> service.doSomething())
.isInstanceOf(SomeException.class)
.hasMessageStartingWith("SomeException has 1,2,3,4 in something field. I want assert that")
. ??? check that SomeException.getSomething() has 1,2,3,4 ???
Проблема в том, что если я свяжу extracting(), он подумает, что я использую Throwable. Поэтому я не могу извлечь что-то из поля
Обновление:

Код: Выделить всё

SomeException throwable = (SomeException) catchThrowable(() -> service.doSomething(

assertThat(throwable)
.hasMessageStartingWith("extracting() bellow still think we're working with Throwable")
.extracting(SomeException::getSomething 

Подробнее здесь: [url]https://stackoverflow.com/questions/64541192/assertthatthrownby-check-field-on-custom-exception[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»