assertj / assertj/assertj-generator
Should assertions for properties of the superclass(es) be generated?
- Langage dominant
- Java
- Étoiles
- 72
- Forks
- 47
- Merge moyen
- 1 j 16 h
- PR mergées (30 j)
- 2
Description
Consider this class:
```
import org.apache.http.client.HttpResponseException;
public class SomeErrorException extends HttpResponseException {
private SomeError error;
public SomeErrorException(int statusCode, String reason, SomeError error) {
super(statusCode, reason);
this.error = error;
}
public SomeError getError() {
return error;
}
}
```
It would be nice to be able to test `SomeErrorException` objects like this:
```
assertThat(exception).hasStatusCode(500)
.hasMessage("Internal Server Error")
.hasError(error)
```
However, `hasStatusCode` and `hasMessage` are not generated because they are defined in superclasses. If I include `HttpResponseException` in the generator configuration (in `pom.xml`), the `hasStatusCode` appear, but of course `hasMessage` is only present if I also include the whole hierarchy (four classes!) up to `Throwable`. Also, `org.assertj.core.api.Assertions.assertThat(Throwable)` already exists, so I cannot make my assertions a subclass (but problem with this idea are already discussed in the documentation).
Does it make sense to make it easier to include assertions for properties of superclasses?
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par lire la configuration du générateur dans pom.xml et la documentation référencée dans l’issue, puis examinez comment les assertions des superclasses sont incluses. Suivez la hiérarchie d’exemple de SomeErrorException à Throwable en passant par HttpResponseException, et examinez la limitation actuelle de Assertions.assertThat(Throwable). Le travail est terminé lorsqu’une approche est décidée et documentée pour générer des assertions de propriétés héritées sans entrer en conflit avec les assertions existantes.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- testing, tooling
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 25/100