0
votes

Test de l'unité Enregistrer des méthodes lorsque le type de retour est annulé

Y a-t-il un moyen de rédiger des tests d'unité pour enregistrer des méthodes dans la couche DAO lorsque le type de retour est annulé? J'utilise log4j, Junit dans le projet de démarrage du printemps.

J'ai essayé de nombreuses façons de les affirmer. Mais comme ils ne retournent aucune valeur, je n'ai pas pu les affirmer.


2 commentaires

Qu'essayez-vous d'affirmer?


J'ai effectivement besoin d'apprendre un moyen d'écrire des tests d'unité pour des méthodes d'annulation.


4 Réponses :


6
votes

Si la méthode est vide , il a effets secondaires , sinon ce serait un non- op .

Vous appelez la méthode, puis vérifiez si l'effet secondaire souhaité s'est produit.

E.g. setfoo (7) doit signifier que getfoo () renvoie 7 , bien que des méthodes de getter / setter simples sont une perte de temps.

Il est courant d'utiliser MOGHER pour détecter les effets secondaires, mais tout dépend de ce que l'effet secondaire attendu est. Voir: Quel est le but de simuler des objets?


4 commentaires

Disons que j'essaie d'économiser des valeurs à la base de données. Mais à l'intérieur de cette série, je ne retournerai rien. Dans ce type de scénario, comment puis-je vous assurer que les données ont été enregistrées avec succès dans la base de données ou non en utilisant des tests unitaires?


En moqueur des objets d'accès à la base de données et en vérifiant les appels corrects où ils sont fabriqués sur eux


@Teguwih Que testez-vous? La base de données? Ne pas. Hiberner? Ne pas. Alors, qu'est-ce que vous testez dans le code que vous appelez?


@Andreas je suis nouveau au printemps. J'ai utilisé MySQL comme connexion de base de données et JDBC pour vous connecter à la base de données. J'ai écrit une méthode de sauvegarde pour enregistrer une entité dans la table de base de données. Mais cette méthode ne retournera rien. J'ai essayé la réponse de Vimukthi_r. Cela semble travailler comme prévu.



1
votes

Il existe plusieurs façons d'un appareil test une méthode qui renvoie nul.

  1. Modifiez la méthode de manière à renvoyer une valeur même si vous n'utilisez pas cette valeur. Ce n'est pas le meilleur moyen, mais je le remarque ici pour la complétude.

  2. La méthode change probablement l'état de l'objet d'une manière ou d'une autre. Un fichier a été enregistré, une valeur a été stockée quelque part, des paramètres ont été modifiés, etc., vérifiez donc les valeurs qui auraient dû être modifiées. Vous pouvez lire un fichier enregistré, une variable modifiée, des données dans une base de données de test, etc.

  3. Des objets simulés peuvent être utilisés pour déterminer si une méthode a été appelée et quel était le comportement. Il existe un certain nombre de cadres d'objet simulés pour Java, notamment Facile Mock , JMockit et Mockito . Comment utiliser un cadre simulé dépasse la portée de cette réponse, mais j'ai fait des liens vers les différents sites pour votre référence.

  4. Si de mauvaises entrées sont données à la méthode, elle peut lancer une exception. C'est une bonne idée de le faire pour tester le traitement des erreurs de vos méthodes.


0 commentaires

2
votes

En fonction de vos commentaires, vous devez écrire un test d'unité pour une méthode de sauvegarde. Essayez cet exemple de code, xxx


2 commentaires

@VIMUKTHU_R SANS TEST TEST ID UNIQUEMENT Y a-t-il un moyen de tester tous les champs de l'objet employé?


Voici une référence lien .



2
votes

écrire un code testable est important en tant que développeur dans les journées modernes. Vous devez comprendre qu'une méthode avec vide, est mauvaise pour une seule raison.Il n'est pas testable par aucun moyen. Je vous suggérerais de vous cibler des actions de prendre

  1. Améliorez votre code avec un type de retour pertinent.
  2. Cela vaut la peine d'appliquer dbunit plutôt que d'appliquer juste JUNIT pour tester votre couche DAO.

    @teguwih


0 commentaires