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.
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.
Il convient de noter ici que lors de l'importation du package jar, vous devez importer un package jar aop dans printemps .
@RunWith(SpringJUnit4ClassRunner.class) public class AccountServiceTest { }
@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.
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations= {"classpath:bean.xml"}) public class AccountServiceTest { @Autowired private IAccountService as ; }
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!