Comment tester la prise en charge de la mise en cache déclarative de Spring sur les référentiels Spring Data?

J'ai développé un Printemps référentiel de Données, MemberRepository de l'interface, qui s'étend org.springframework.data.jpa.repository.JpaRepository. MemberRepository a une méthode:

@Cacheable(CacheConfiguration.DATABASE_CACHE_NAME)
Member findByEmail(String email);

Le résultat est mis en cache par le Printemps cache abstraction (soutenu par un ConcurrentMapCache).

Le problème que j'ai est que je veux écrire un test d'intégration (contre hsqldb), qui affirme que le résultat est extrait de db la première fois et de cache de la deuxième fois.

J'ai d'abord pensé à se moquer de la jpa de l'infrastructure (gestionnaire d'entités, etc.) et en quelque sorte affirmer que le gestionnaire d'entité n'est pas la deuxième fois, mais il semble trop dur/encombrant (voir https://stackoverflow.com/a/23442457/536299).

Quelqu'un peut-il alors s'il vous plaît fournir des conseils sur la manière de tester le comportement de mise en cache d'un Ressort Référentiel de Données méthode annotée avec @Cacheable?

source d'informationauteur balteo