From 58498ef225ad4b91259e7641abecd7c4a89321c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BE=E5=87=A0=E6=B5=B7?= Date: Sun, 18 Oct 2020 13:56:20 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B5=8B=E8=AF=95=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E4=BB=8D=E7=84=B6=E4=BD=BF=E7=94=A8test=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E6=95=B0=E6=8D=AE=E5=BA=93=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=20=E5=B9=B6=E5=9C=A8=E5=8D=95=E5=85=83=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E4=B8=ADmock=20profiles?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../celess/blog/configuration/DruidConfig.java | 5 +++-- .../blog/configuration/DruidConfigTest.java | 18 +++++++++++++++++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/main/java/cn/celess/blog/configuration/DruidConfig.java b/src/main/java/cn/celess/blog/configuration/DruidConfig.java index 25bdb1d..0a2f08f 100644 --- a/src/main/java/cn/celess/blog/configuration/DruidConfig.java +++ b/src/main/java/cn/celess/blog/configuration/DruidConfig.java @@ -9,8 +9,8 @@ import org.springframework.core.env.Environment; import java.io.File; import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.IOException; +import java.util.Arrays; import java.util.Properties; /** @@ -29,12 +29,13 @@ public class DruidConfig { public static final String DB_CONFIG_USERNAME_PREFIX = "spring.datasource.username"; public static final String DB_CONFIG_PASSWORD_PREFIX = "spring.datasource.password"; public static final String DB_CONFIG_DRIVER_CLASS_NAME_PREFIX = "spring.datasource.driver-class-name"; + public static final String TEST_PROFILES = "test"; @Bean public DruidDataSource initDataSource() throws IOException { DruidDataSource dataSource; File file = new File(DB_CONFIG_PATH); - if (file.exists()) { + if (file.exists() && !Arrays.asList(env.getActiveProfiles()).contains(TEST_PROFILES)) { log.debug("从文件中获取数据库配置"); dataSource = readConfigFromFile(file); } else { diff --git a/src/test/java/cn/celess/blog/configuration/DruidConfigTest.java b/src/test/java/cn/celess/blog/configuration/DruidConfigTest.java index d0b9e97..047fd79 100644 --- a/src/test/java/cn/celess/blog/configuration/DruidConfigTest.java +++ b/src/test/java/cn/celess/blog/configuration/DruidConfigTest.java @@ -7,6 +7,7 @@ import com.alibaba.druid.pool.DruidDataSource; import org.junit.After; import org.junit.Before; import org.junit.Test; +import org.mockito.Mock; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; @@ -14,15 +15,22 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; +import java.util.Arrays; import java.util.Properties; import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; public class DruidConfigTest extends BaseTest { - @Autowired + @Mock Environment env; + @Autowired + Environment globalEnvironment; + + private File configFile; private File bakConfigFile; @@ -30,8 +38,11 @@ public class DruidConfigTest extends BaseTest { public void initDataSource() throws IOException { DruidConfig druidConfig = new DruidConfig(); + druidConfig.env = env; + System.out.println(Arrays.toString(env.getActiveProfiles())); + // 无配置文件 assertTrue(!configFile.exists() || configFile.delete()); DruidDataSource druidDataSource = druidConfig.initDataSource(); @@ -86,6 +97,11 @@ public class DruidConfigTest extends BaseTest { System.out.println("备份文件成功"); copyFile(configFile, bakConfigFile); } + when(this.env.getActiveProfiles()).thenReturn(new String[]{"dev"}); + when(this.env.getProperty(DruidConfig.DB_CONFIG_PASSWORD_PREFIX)).thenReturn(globalEnvironment.getProperty(DruidConfig.DB_CONFIG_PASSWORD_PREFIX)); + when(this.env.getProperty(DruidConfig.DB_CONFIG_URL_PREFIX)).thenReturn(globalEnvironment.getProperty(DruidConfig.DB_CONFIG_URL_PREFIX)); + when(this.env.getProperty(DruidConfig.DB_CONFIG_USERNAME_PREFIX)).thenReturn(globalEnvironment.getProperty(DruidConfig.DB_CONFIG_USERNAME_PREFIX)); + when(this.env.getProperty(DruidConfig.DB_CONFIG_DRIVER_CLASS_NAME_PREFIX)).thenReturn(globalEnvironment.getProperty(DruidConfig.DB_CONFIG_DRIVER_CLASS_NAME_PREFIX)); } /**