改进单元测试类配置

This commit is contained in:
thinkgem
2025-08-25 10:37:59 +08:00
parent c47be09f51
commit cd07b1a3c8
11 changed files with 65 additions and 107 deletions

View File

@@ -1,16 +1,7 @@
# 产品或项目名称、软件开发公司名称
productName: JeeSite Demo
companyName: ThinkGem
# 产品版本、版权年份
productVersion: V5.13
copyrightYear: 2025
# 数据库连接
jdbc:
jdbc:
# Mysql 数据库配置
type: mysql
driver: com.mysql.cj.jdbc.Driver
@@ -18,11 +9,7 @@ jdbc:
username: root
password: 123456
testSql: SELECT 1
# 日志配置
logging:
config: classpath:logback-test.xml
# 消息推送
msg:
enabled: true

View File

@@ -1,5 +1,13 @@
# 温馨提示不建议直接修改此文件为了平台升级方便建议将需要修改的参数值复制到application.yml里进行覆盖该参数值。
# 产品或项目名称、软件开发公司名称
productName: JeeSite Demo
companyName: ThinkGem
# 产品版本、版权年份
productVersion: V5.13
copyrightYear: 2025
#======================================#
#========== Database sttings ==========#
#======================================#

View File

@@ -1,15 +1,7 @@
# 产品或项目名称、软件开发公司名称
productName: JeeSite Demo
companyName: ThinkGem
# 产品版本、版权年份
productVersion: V5.13
copyrightYear: 2025
# 数据库连接
jdbc:
jdbc:
# Mysql 数据库配置
type: mysql
driver: com.mysql.cj.jdbc.Driver
@@ -17,12 +9,7 @@ jdbc:
username: root
password: 123456
testSql: SELECT 1
# 日志配置
logging:
config: classpath:logback-test.xml
# 消息推送
msg:
enabled: true

View File

@@ -0,0 +1,24 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
* No deletion without permission, or be held responsible to law.
*/
package com.jeesite.test;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.test.context.ActiveProfiles;
/**
* JeeSite Web
* @author ThinkGem
* @version 2018-1-8
*/
@ActiveProfiles("test")
@SpringBootApplication
public class ApplicationTest {
public static void main(String[] args) {
SpringApplication.run(ApplicationTest.class, args);
}
}

View File

@@ -0,0 +1,45 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
* No deletion without permission, or be held responsible to law.
*/
package com.jeesite.test;
import com.jeesite.common.collect.ListUtils;
import com.jeesite.common.tests.BaseSpringContextTests;
import com.jeesite.modules.test.dao.TestDataDao;
import com.jeesite.modules.test.entity.TestData;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import java.util.List;
/**
* 批量插入测试
* @author ThinkGem
* @version 2019年10月28日
*/
@ActiveProfiles("test")
@SpringBootTest(classes = ApplicationTest.class)
public class InsertBatchTest extends BaseSpringContextTests {
@Autowired
private TestDataDao testDataDao;
@Test
public void testData1() throws Exception{
List<TestData> list = ListUtils.newArrayList();
for(int i=0; i<5000; i++){
TestData testData = new TestData();
testData.setTestInput("test"+i);
list.add(testData);
}
testDataDao.insertBatch(list);
list = testDataDao.findList(new TestData());
System.out.println("insert: " + list.size());
long count = testDataDao.updateBatch(list);
System.out.println("update: " + count);
}
}

View File

@@ -0,0 +1,70 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
* No deletion without permission, or be held responsible to law.
*/
package com.jeesite.test;
import com.jeesite.common.collect.ListUtils;
import com.jeesite.common.idgen.IdGen;
import com.jeesite.common.tests.BaseSpringContextTests;
import com.jeesite.modules.test.entity.TestData;
import com.jeesite.modules.test.entity.TestDataChild;
import com.jeesite.modules.test.service.TestDataService;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* 多数据源并发测试<br>
* 1、将 TestDataChildDao 的数据源设置为 ds2<br>
* 2、将 TestDataChild 的表名设置为 test_data_child2<br>
* 3、配置 ds2 数据源,并创建 test_data_child2 表
* @author ThinkGem
* @version 2019-6-26
*/
@ActiveProfiles("test")
@SpringBootTest(classes = ApplicationTest.class)
public class MultiDataSourceTest extends BaseSpringContextTests {
@Autowired
private TestDataService testDataService;
@Test
public void testData() throws Exception{
ExecutorService pool = Executors.newCachedThreadPool();
CountDownLatch latch = new CountDownLatch(10);
Runnable runnable = new Runnable() {
@Override
public void run() {
try{
Thread.sleep(IdGen.randomInt(1000, 3000));
TestData testData = new TestData();
testData.setTestDataChildList(ListUtils.newArrayList(
new TestDataChild(), new TestDataChild(), new TestDataChild()));
testDataService.save(testData);
List<TestData> list = testDataService.findList(new TestData());
System.out.println("size: " + list.size());
list.forEach(e -> {
System.out.println("get: " + testDataService.get(e));
});
} catch (Exception e) {
System.err.println(e.getMessage());
} finally {
latch.countDown();
}
}
};
for (int i = 0; i < latch.getCount(); i++) {
pool.execute(runnable);
}
latch.await();
pool.shutdown();
}
}

View File

@@ -0,0 +1,15 @@
# 数据库连接
jdbc:
# Mysql 数据库配置
type: mysql
driver: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/jeesite_v5?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=Asia/Shanghai
username: root
password: 123456
testSql: SELECT 1
# 日志配置
logging:
config: classpath:logback-test.xml

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="false">
<!-- Logger level setting -->
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<include resource="config/logger-core.xml"/>
<!-- Console log output -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} %clr(%-5p) %clr([%-39logger{39}]){cyan} - %m%n%wEx</pattern>
</encoder>
</appender>
<!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 -->
<root level="WARN">
<appender-ref ref="console" />
</root>
</configuration>