Comment se moquer de la persistance et de l'Entité avec Mockito et jUnit

J'essaie de trouver un moyen de tester mon entité à l'aide de Mockito;

C'est la simple méthode de test:

@Mock
private EntityManager em;

@Test
public void persistArticleWithValidArticleSetsArticleId() {
    Article article = new Article();
    em.persist(article);
    assertThat(article.getId(), is(not(0L)));
}

Comment puis-je mieux simuler le comportement que l'EntityManager change l'Id de 0L à dire 1L? Peut-être avec le moins de gêne dans la lisibilité.

Edit:
Quelques informations supplémentaires; en Dehors de test de la portée de l'EntityManager est produit par une application conteneur

Quelques informations supplémentaires; en Dehors de test de la portée de l'EntityManager est produit par une application conteneur (glassfish).
Vous pouvez simplement tester votre setId() et getId() méthodes pour la classe Article. Je pense qu'il n'est pas nécessaire de se moquer de l'EntityManager et dites-lui de définir l'id de l'article. Ce test sera plus adapté lorsque les tests unitaires EntityManager lui-même, lorsque vous voulez vérifier si l'id est généré et mis à l'entité que vous passez à persister.
Ce n'est pas le meilleur des cas, d'utiliser les moqueries de la bibliothèque. Regardez de plus près à votre test - ce que vous êtes en test ici est de vérifier si les moqueries de la bibliothèque fonctionne, au lieu de tester votre code. On se moque de sont utiles si vous avez besoin de se moquer/stub un comportement de composant interne de votre classe de test et vous savez comment ce composant se comporte dans des situations particulières.

OriginalL'auteur Patrick | 2014-11-15