assertj / assertj/doc

Add custom exception assertions

Abierto
#175 1 comentario 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
CSS
Estrellas
26
Forks
32
Merge medio
2 d 9 h
PR fusionados (30 d)
3

Descripción

Currently, the documentation shows how to extend an assertion in [2.6.2 Custom Assertions](https://assertj.github.io/doc/#assertj-core-custom-assertions) but there is no documentation for custom exception asserts, which seems to use a slightly different mechanism with some other class hierarchy.

It would be nice to include this in the guide and in the [examples repository](https://github.com/assertj/assertj-examples)

The goal for this section in the guide will be to present, given a custom exception, a way to assert on the specific fields in that class. For instance, given a custom exception:
```
package com.example.exception;

public class DetailException extends RuntimeException {

private String detail;

public DetailException(String message, String detail) {
super(message);
this.detail = detail;
}

public String getDetail() {
return detail;
}
}
```

and a business logic throwing this exception
```
package com.example.thrower;

import com.example.exception.DetailException;

public class DetailExceptionThrower {

public void throwException() {
throw new DetailException("message", "a detailed exception explanation");
}
}
```

write an extension to write a test like:
```
package com.example.thrower;

import org.junit.jupiter.api.Test;

import static org.assertj.extension.DetailExceptionAssertions.assertThatDetailException;

class DetailExceptionThrowerCustomAssertionTest {

private final DetailExceptionThrower underTest = new DetailExceptionThrower();

@Test
void test_customAssertion() {
assertThatDetailException()
.isThrownBy(underTest::throwException)
.withMessage("message")
.withDetail("a detailed exception explanation");
}
}
```

is it even possible to write an extension like this?

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Comienza con la sección existente «2.6.2 Custom Assertions» de la guía de AssertJ enlazada e inspecciona el repositorio assertj-examples enlazado para comprobar sus ejemplos actuales de assertions. Confirma cómo encajan las assertions personalizadas de excepciones en la jerarquía de clases existente y documenta en ambas ubicaciones un ejemplo que cubra el mensaje de la excepción y los campos de detalle.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java
Área
documentation
Tipo de issue
Documentación
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.