Maison >Java >javaDidacticiel >Comment SpringBoot teste les propriétés de configuration et l'environnement de démarrage Web

Comment SpringBoot teste les propriétés de configuration et l'environnement de démarrage Web

PHPz
PHPzavant
2023-05-19 17:20:16828parcourir

Charger les attributs spécifiques au test

Cliquez pour afficher le code source de @SpringBootTest

Comment SpringBoot teste les propriétés de configuration et lenvironnement de démarrage Web

Vous pouvez ajouter une configuration temporaire plus tard, peut également être défini à l'aide du paramètre args de ligne de commande. Les paramètres spécifiques au test définis remplaceront ceux du fichier de configuration.

package com;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest(args = {properties = {"test.properties=1234"})
public class TestProperties {
    @Value("${test.properties}")
    private String ps;
    @Test
    public void test(){
        System.out.println(ps);
    }
}

Exécution des résultats

Comment SpringBoot teste les propriétés de configuration et lenvironnement de démarrage Web

Vous pouvez également utiliser les paramètres de ligne de commande

args = {" - -test.properties=4321"},

Les paramètres de ligne de commande ont une priorité plus élevée que le fichier de configuration, donc lorsque les deux coexistent, les paramètres de ligne de commande ont priorité

@SpringBootTest(args = {"--test.properties=4321"},properties = {"test.properties=1234"})
#🎜 🎜#

Comment SpringBoot teste les propriétés de configuration et lenvironnement de démarrage Web

Les propriétés définies par cette classe de test ne sont valables que pour le test en cours et ont peu d'impact

Utiliser des beans externes pour les tests

package com.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration//说明当前为配置类
public class TestBean {
    @Bean//创建bean
    public String mess(){
        return "this bean run ";
    }
}

Sous la classe de test, utilisez l'annotation @Import pour charger la configuration de test actuelle 🎜🎜#

Généralement, le serveur ne sera pas démarré lors de l'exécution dans la classe de test, comme indiqué ci-dessous. Ils affichent tous des informations sur le succès ou l'échec de l'opération

Comment SpringBoot teste les propriétés de configuration et lenvironnement de démarrage Web Faisons Ctrl+b cliquez sur le code source de @SpringBootTest pour voir, il y a une question à propos du web

La valeur par défaut est MOCK, mock : fournit un environnement Web simulé par défaut et ne démarrera pas le serveur intégré

# 🎜🎜#Nous testons la classe中Comment SpringBoot teste les propriétés de configuration et lenvironnement de démarrage Web

La première consiste à démarrer avec le port spécifié dans votre fichier de configuration. Sinon, elle démarrera. avec 8080 par défautComment SpringBoot teste les propriétés de configuration et lenvironnement de démarrage Web

Deux simulations : fournit un environnement Web simulé par défaut et ne démarrera pas le serveur intégré

La troisième consiste à ne pas démarrer le serveur

# 🎜🎜#Le quatrième est le démarrage aléatoire du port# 🎜🎜#

Nous testons le démarrage aléatoire du port

package com.test;
import com.config.TestBean;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.Import;
@SpringBootTest
@Import({TestBean.class})
public class TestBeanNow {
    @Autowired//注入bean对象
    public String mess;
    @Test
    public void test(){
        System.out.println(mess);
    }
}
Comment SpringBoot teste les propriétés de configuration et lenvironnement de démarrage WebRésultats d'exécution

Exécutez-le deux fois pour voir les résultats du port, ils sont tous aléatoires

#🎜🎜 #

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