苏州网站推广如何杭州软件建设
2026/4/6 7:31:51 网站建设 项目流程
苏州网站推广如何,杭州软件建设,苏州网站建设seo,网站怎么开通微信支付springboot集成h2内存数据库运行测试用例 首先引入我们的依赖 引入h2的依赖和spring的依赖 dependencies {implementation org.springframework.boot:spring-boot-h2consoleimplementation org.springframework.boot:spring-boot-starter-data-jdbc// 引入h2内存数据库runtimeO…springboot集成h2内存数据库运行测试用例首先引入我们的依赖引入h2的依赖和spring的依赖dependencies{implementationorg.springframework.boot:spring-boot-h2consoleimplementationorg.springframework.boot:spring-boot-starter-data-jdbc// 引入h2内存数据库runtimeOnlycom.h2database:h2testImplementationorg.springframework.boot:spring-boot-starter-data-jdbc-testtestRuntimeOnlyorg.junit.platform:junit-platform-launchertestImplementationplatform(org.junit:junit-bom:5.13.4)testImplementationorg.junit.jupiter:junit-jupiter}完整的配置build.gradleplugins{idjavaidgroovyidorg.springframework.bootversion4.0.0idio.spring.dependency-managementversion1.1.7}grouplocalversion0.0.1-SNAPSHOTdescriptionjava{toolchain{languageVersionJavaLanguageVersion.of(25)}}sourceSets{main{groovy{srcDirs[src/main/groovy,src/main/java]}}test{groovy{srcDirs[src/test/groovy,src/test/java]}}}repositories{mavenCentral()}dependencies{implementationorg.springframework.boot:spring-boot-h2consoleimplementationorg.springframework.boot:spring-boot-starter-data-jdbc// jetty替换tomcatimplementation(org.springframework.boot:spring-boot-starter-jetty)implementation(org.springframework.boot:spring-boot-starter-webmvc)implementationorg.apache.groovy:groovy// 引入h2内存数据库runtimeOnlycom.h2database:h2testImplementationorg.springframework.boot:spring-boot-starter-data-jdbc-testtestImplementationorg.springframework.boot:spring-boot-starter-webmvc-testtestRuntimeOnlyorg.junit.platform:junit-platform-launchertestImplementationplatform(org.junit:junit-bom:5.13.4)testImplementationorg.junit.jupiter:junit-jupiter}configurations{implementation{// 全局排除Tomcat依赖确保使用Jettyexclude group:org.springframework.boot,module:spring-boot-starter-tomcat}}tasks.withType(GroovyCompile).configureEach{// 启用groovy的增量编译,和注解处理器冲突!options.incrementaltrueoptions.incrementalAfterFailuretrue}tasks.withType(JavaCompile).configureEach{// 指定java版本options.release25}tasks.named(jar){// 设置重复文件处理策略duplicatesStrategyDuplicatesStrategy.EXCLUDE}tasks.named(bootJar){// 设置重复文件处理策略duplicatesStrategyDuplicatesStrategy.EXCLUDE}tasks.named(test){useJUnitPlatform()jvmArgs-XX:EnableDynamicAgentLoadingjvmArgs-XX:UseCompactObjectHeaders// 测试输出配置testLogging{eventspassed,skipped,failed,standardOut,standardError// 显示System.out和System.err的输出showStandardStreamstrueshowCausestrueshowExceptionstrueshowStackTracestrueexceptionFormatfull}// 在控制台实时显示输出outputs.upToDateWhen{false}}settings.gradlerootProject.namemy_sb4enableFeaturePreview(GROOVY_COMPILATION_AVOIDANCE)然后在spring的配置文件中配置数据库连接注意要添加这些参数DB_CLOSE_DELAY-1 : 避免没有连接时内存数据库关闭导致数据丢失MODEMySQL : 使用mysql模式DATABASE_TO_LOWERTRUE 和 CASE_INSENSITIVE_IDENTIFIERSFALSE : 兼容mysql默认的忽略大小写模式LOCK_TIMEOUT30 : 设置锁超时时间,避免一直死锁(单位秒)内存数据库配置如下application-test.yml# application-test.ymlspring:datasource:# 内存数据库连接配置,注意参数url:jdbc:h2:mem:testdb;DB_CLOSE_DELAY-1;MODEMySQL;DATABASE_TO_LOWERTRUE;CASE_INSENSITIVE_IDENTIFIERSFALSE;LOCK_TIMEOUT30driver-class-name:org.h2.Driverusername:sapassword:h2:console:# 开启h2控制台;通过 localhost:8080/h2-console 访问enabled:truepath:/h2-consolesql:init:# 初始化数据库方式,在运行测试用例时设置为alwaysmode:always# 初始化数据库脚本位置schema-locations:classpath:db/schema.sqldata-locations:classpath:db/data.sqlcontinue-on-error:false通用配置如下application.ymlspring:application:name:my_sb4server:port:8080servlet:context-path:/# 配置日志logging:level:org.springframework.boot:INFOorg.eclipse.jetty:WARNorg.springframework.jdbc:DEBUGpattern:console:%d{yy-MM-dd HH:mm:ss.S} %highlight(%-5p) %c{1}:%L - %m%n然后创建我们的初始化脚本schema.sqlCREATETABLEIFNOTEXISTST_USERS(IDBIGINTAUTO_INCREMENTPRIMARYKEY,USERNAMEVARCHAR(255)NULL);data.sqlINSERTINTOT_USERS(USERNAME)VALUES(张三);INSERTINTOT_USERS(USERNAME)VALUES(李四);INSERTINTOT_USERS(USERNAME)VALUES(王五);现在编写我们的测试用例我们希望在测试用例中查询数据,就可以整样packagelocal.my_sb4importorg.junit.jupiter.api.Testimportorg.springframework.beans.factory.annotation.Autowiredimportorg.springframework.boot.test.context.SpringBootTestimportorg.springframework.jdbc.core.JdbcTemplateimportorg.springframework.test.context.ActiveProfilesimporttools.jackson.databind.json.JsonMapperSpringBootTestActiveProfiles(test)classMySb4ApplicationTest{AutowiredprivateJdbcTemplate jdbcTemplateAutowiredJsonMapper jsonMapperTestvoidtestContextLoads(){println jsonMapper.writeValueAsString(jdbcTemplate.queryForList(select * from t_Users ))// 我们自己的表默认都在public下,通常不需要改变他们println jsonMapper.writeValueAsString(jdbcTemplate.queryForList(select * from INFORMATION_SCHEMA.TABLES where table_schema!information_schema ))}}运行我们的用例将正常输出日志25-12-16 17:26:30.4 DEBUG o.s.j.c.JdbcTemplate:470 - Executing SQL query [select * from t_Users ] 25-12-16 17:26:30.4 DEBUG o.s.j.d.DataSourceUtils:117 - Fetching JDBC Connection from DataSource [{id:1,username:张三},{id:2,username:李四},{id:3,username:王五}] 25-12-16 17:26:30.5 DEBUG o.s.j.c.JdbcTemplate:470 - Executing SQL query [select * from INFORMATION_SCHEMA.TABLES where table_schema!information_schema ] 25-12-16 17:26:30.5 DEBUG o.s.j.d.DataSourceUtils:117 - Fetching JDBC Connection from DataSource [{table_catalog:testdb,table_schema:public,table_name:t_users,table_type:BASE TABLE,is_insertable_into:YES,commit_action:null,storage_type:MEMORY,remarks:null,last_modification:30,table_class:org.h2.mvstore.db.MVTable,row_count_estimate:3}]

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询