Maison  >  Article  >  Java  >  Comment intégrer Junit entre Java et Spring ?

Comment intégrer Junit entre Java et Spring ?

WBOY
WBOYavant
2023-04-21 11:13:071260parcourir

    1 Problèmes et solutions dans la classe de test

    1.1 Problème

    • Dans la classe de test, chaque méthode de test comporte les deux lignes de code suivantes :

      • ApplicationContext ac = new ClassPathXmlApplicationContext(" bean .xml");

      • IAccountService as = ac.getBean("accountService",IAccountService.class);

    • La fonction de ces deux lignes de code est d'obtenir le conteneur. Si vous ne l'écrivez pas , il demandera directement une exception de pointeur vide. Il ne peut donc pas être supprimé facilement.

    1.2 Analyse des idées de solutions

    • Compte tenu des problèmes ci-dessus, ce qu'il faut, c'est que le programme puisse créer automatiquement des conteneurs.

    • junit ne peut pas savoir si le framework spring est utilisé et ne peut pas créer un conteneur spring, mais junit expose une annotation qui peut remplacer son runner.

    • Vous devez vous fier au runner fourni par le framework spring. Vous pouvez lire le fichier de configuration (ou les annotations) pour créer le conteneur. Il vous suffit de lui indiquer où se trouve le fichier de configuration.

    2 Étapes de configuration

    2.1 Étape 1 : Copiez le package jar nécessaire pour intégrer junit dans le répertoire lib

    • Il convient de noter ici que lors de l'importation du package jar, vous devez importer un package jar aop dans printemps .

    Comment intégrer Junit entre Java et Spring ?

    2.2 Étape 2 : Utilisez l'annotation @RunWith pour remplacer le coureur d'origine

    @RunWith(SpringJUnit4ClassRunner.class)
    public class AccountServiceTest {
    }

    2.3 Étape 3 : Utilisez @ContextConfiguration pour spécifier l'emplacement du fichier de configuration Spring

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations= {"classpath:bean.xml"})
    public class AccountServiceTest {
    }
    • @ContextConfiguration annotation :

      • Attribut locations : utilisé pour spécifier l'emplacement du fichier de configuration. S'il est sur le classpath, vous devez utiliser classpath: pour indiquer

      • attribut classes : utilisé pour spécifier les classes de l'annotation. Lorsque vous n'utilisez pas la configuration XML, vous devez utiliser cet attribut pour spécifier l'emplacement de la classe d'annotation.

    2.4 Étape 4 : Utilisez @Autowired pour injecter des données dans les variables de la classe de test

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations= {"classpath:bean.xml"})
    public class AccountServiceTest {
     
        @Autowired
        private IAccountService as ;
    }

    3 Raisons pour ne pas attribuer la classe de test à XML

    • Première : Lorsqu'un bean est configuré en XML, lorsque spring charge le fichier de configuration pour créer un conteneur, l'objet sera créé.

    • Deuxième : La classe test n'est utilisée que lors du test des fonctions dans le projet, elle ne participe pas à la logique du programme et ne résoudra pas les problèmes de demande, elle est donc créée mais non utilisée. Ensuite, le stocker dans le conteneur entraînera un gaspillage de ressources.

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer