assertj / assertj/assertj-generator

Should assertions for properties of the superclass(es) be generated?

Ouverte
#91 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.