[JAVA] Erreur lors du démarrage de JUnit avec une version obsolète de POI

introduction

Dans un certain projet, la classe de test unitaire continuait à générer des erreurs, donc la cause a été étudiée. C'est un mémo du processus d'enquête à ce moment-là.

L'erreur qui se produisait

SLF4J: Failed toString() invocation on an object of type [org.apache.poi.hssf.usermodel.HSSFRow]
java.lang.AssertionError: hashCode not designed
    at org.apache.poi.hssf.usermodel.HSSFRow.hashCode(HSSFRow.java:704)
    at java.lang.Object.toString(Object.java:236)
    :
    :

En raison de l'erreur ci-dessus, la sortie du journal de débogage a échoué. (J'ai toujours pu exécuter la classe de test)

Voyons où l'erreur s'est produite

Jetez un œil à HSSFRow.java où l'erreur se produit

702: @Override
703: public int hashCode() {
704:     assert false : "hashCode not designed";
705:     return 42; // any arbitrary constant will do
706: }

Apparemment, il semble que l'implémentation est telle qu'une AssertionError se produit lorsque la méthode hashCode est appelée.

J'ai vérifié la version de la bibliothèque

J'étais un peu inquiet et j'ai décidé de vérifier la version de chaque bibliothèque pour le moment.

Demandez à un enseignant de Google de voir si la version de ↑ est correcte. (J'ai fait référence à l'article Chargement des données de test d'intégration à l'aide de DBUnit.)

POI n'était pas la version recommandée

D'après l'article auquel j'ai fait référence, la version POI utilise 3.2-FINAL. Lorsque j'ai essayé de changer de version, l'erreur a disparu.

Recommended Posts

Erreur lors du démarrage de JUnit avec une version obsolète de POI
Test JUnit facile de la version Elasticsearch 2018 avec Embedded-elasticsearch
Erreur lors de la lecture avec java
Cause de l'erreur DOMA 4019 lors de la compilation avec Gradle pendant 7 jours
Un mémorandum lors du démarrage d'un nouveau développement avec IntelliJ + Gradle + SpringBoot + JUnit5 (Jupiter)
Erreur lors de la création de l'infrastructure avec l'application AWS
Erreur lors du démarrage d'Eclipse après la mise à niveau du JDK
Erreur Javaw.exe lors du démarrage de Spring Boot (STS)
[Laravel] Comment gérer une erreur de mémoire insuffisante lorsque le compositeur a besoin de [Docker]
[Rails] Résolution d'erreur lors de la génération de jetons avec PAYJP
Gérez la version de Ruby elle-même avec rbenv
Écraser le contenu de la configuration avec Spring-boot + JUnit5
Libération: effectuer le déploiement donne le code d'erreur 400
Après avoir installé le gemfile'devise''bootstrap 'avec des rails, que faire lorsque l'url est une erreur