You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

H2/Spring在测试中重置行为异常

在使用H2和Spring进行测试时,可能会出现一个奇怪的行为,即测试中的H2数据库重置(清空)的不是每一个表。这可能导致数据污染,测试结果不正确。 解决此问题的方法是添加以下代码段到测试类中:

@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)
@AutoConfigureTestDatabase(replace = Replace.ANY)
public abstract class YourTestBaseClass extends AbstractTransactionalJUnit4SpringContextTests  {
   private static final Logger logger = LoggerFactory.getLogger(YourTestBaseClass.class);

   @Autowired
   private JdbcTemplate jdbcTemplate;

   @Autowired
   private DataSource dataSource;

   @BeforeClass
   public static void setUpClass() {
      logger.debug("Running once before tests in class");
   }

   @AfterClass
   public static void tearDownClass() {
      logger.debug("Running once after tests in class");
   }

   @Before
   public void setUp() {
      logger.debug("Running before test-method");
   }

   @After
   public void tearDown() {
      logger.debug("Running after test-method");
      jdbcTemplate.update("SHUTDOWN");
   }

   @Override
   protected void executeSqlScript(String sqlResourcePath, boolean continueOnError) {
      // Create a connection to the database to execute the script.
      try (Connection connection = DataSourceUtils.getConnection(dataSource)) {
        Resource resource = new ClassPathResource(sqlResourcePath);
        EncodedResource encodedResource = new EncodedResource(resource, "UTF-8");
        ScriptUtils.executeSqlScript(connection, encodedResource, continueOnError, false,
                DEFAULT_COMMENT_PREFIX, DEFAULT_STATEMENT_SEPARATOR, DEFAULT_BLOCK_COMMENT_START_DELIMITER,
                DEFAULT_BLOCK_COMMENT_END_DELIMITER);
      } catch (SQLException e) {
        throw new RuntimeException("Failed to execute script " + sqlResourcePath, e);
      }
   }
}

这个测试类会在每个测试方法执行之前和之后进行重置数据库,确保每个测试方法都是独立进行的。为了使用它,只需将您想要测试的类扩展到它(例如,public class MyTest extends YourTestBaseClass),并将测试方法放入MyTest类中。

值得注意的是,在使用@DirtiesContext注解时,测试执行速度会变慢,因为它将重建应用程序上下文。如果您的测试更重视性能而不是灵活性,则可以删除@DirtiesContext注解。

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

替换 Spring Cloud,使用基于 Cloud Native 的服务治理

文章中指出微服务架构有以下一些特点:+ 高可维护性和可测试性;+ 服务之间松耦合;+ 服务可独立部署;+ 服务围绕业务组织;+ 被一些小团队使用。* 2015 年,Spring 社区围绕之前 Netflix 沉淀的一些组件以及 Mar... =&rk3s=8031ce6d&x-expires=1714580448&x-signature=h2YGg5fdETQDyKx9NTvqJdxPVQw%3D)Kubernetes 这方面做得好一点。它本身提供 readless 的检测,检测完之后,如果调用失败了,平台就会帮助进行自动扩展和调度。...

深入探究音视频开源库WebRTC中NetEQ音频抗网络延时与抗丢包的实现机制 | 主赛道

NetEQ处理中包括了自适应抖动控制算法和语音丢包补偿算法。自适应抖动算法能够快速适应不断变化的网络环境,而语音丢包补偿算法能够保证一定的音质和清晰度且缓冲延迟最小,另外对NetEQ算法的模拟测试有助于评估音质... 在接收端完成,不需要发送端的参与和额外的比特流,所以能够满足实时传输的要求,在现代网络传输中更具有有效性和实用性。基于基音检测的波形替代技术是通过计算基音周期,然后根据基音周期对该帧进行清浊音判断,如果...

Go 语言微服务介绍与开发实战|社区征文

spring-cloud):基于 Spring Boot,为微服务体系开发中的架构问题,提供了一整套的解决方案——服务注册与发现,服务消费,服务保护与熔断,网关,分布式调用追踪,分布式配置管理等。- [Dropwizard](https://www.dropwizard.io/en/latest/):一个开源的 RESTful 快速开发框架,对微服务的开发也极其友好,而且性能很强- [Micronaut](https://micronaut.io/):是一个现代的、基于 JVM 的全栈微服务框架,旨在构建模块化、易于测试的微服...

基于 Agent 的无侵入 Proxyless Mesh:开启 Java 服务网格的未来

=&rk3s=8031ce6d&x-expires=1714753225&x-signature=c9rSvbe0IvC93eosWvh2uDhFZF4%3D)[微服务引擎 MSE](https://www.volcengine.com/product/mse) 是火山引擎提供的一款面向微服务全生命周期的一站式微服务解决方案。产品提供开源增强的 Nacos 注册发现、配置管理的能力,兼容原生 Spring Cloud 、gRPC及 Service Mesh 架构丰富微服务治理能力,助力用户快速构建稳定、安全、高效云原生微服务体系。来...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

H2/Spring在测试中重置行为异常 -优选内容

替换 Spring Cloud,使用基于 Cloud Native 的服务治理
文章中指出微服务架构有以下一些特点:+ 高可维护性和可测试性;+ 服务之间松耦合;+ 服务可独立部署;+ 服务围绕业务组织;+ 被一些小团队使用。* 2015 年,Spring 社区围绕之前 Netflix 沉淀的一些组件以及 Mar... =&rk3s=8031ce6d&x-expires=1714580448&x-signature=h2YGg5fdETQDyKx9NTvqJdxPVQw%3D)Kubernetes 这方面做得好一点。它本身提供 readless 的检测,检测完之后,如果调用失败了,平台就会帮助进行自动扩展和调度。...
深入探究音视频开源库WebRTC中NetEQ音频抗网络延时与抗丢包的实现机制 | 主赛道
NetEQ处理中包括了自适应抖动控制算法和语音丢包补偿算法。自适应抖动算法能够快速适应不断变化的网络环境,而语音丢包补偿算法能够保证一定的音质和清晰度且缓冲延迟最小,另外对NetEQ算法的模拟测试有助于评估音质... 在接收端完成,不需要发送端的参与和额外的比特流,所以能够满足实时传输的要求,在现代网络传输中更具有有效性和实用性。基于基音检测的波形替代技术是通过计算基音周期,然后根据基音周期对该帧进行清浊音判断,如果...
Go 语言微服务介绍与开发实战|社区征文
spring-cloud):基于 Spring Boot,为微服务体系开发中的架构问题,提供了一整套的解决方案——服务注册与发现,服务消费,服务保护与熔断,网关,分布式调用追踪,分布式配置管理等。- [Dropwizard](https://www.dropwizard.io/en/latest/):一个开源的 RESTful 快速开发框架,对微服务的开发也极其友好,而且性能很强- [Micronaut](https://micronaut.io/):是一个现代的、基于 JVM 的全栈微服务框架,旨在构建模块化、易于测试的微服...
基于 Agent 的无侵入 Proxyless Mesh:开启 Java 服务网格的未来
=&rk3s=8031ce6d&x-expires=1714753225&x-signature=c9rSvbe0IvC93eosWvh2uDhFZF4%3D)[微服务引擎 MSE](https://www.volcengine.com/product/mse) 是火山引擎提供的一款面向微服务全生命周期的一站式微服务解决方案。产品提供开源增强的 Nacos 注册发现、配置管理的能力,兼容原生 Spring Cloud 、gRPC及 Service Mesh 架构丰富微服务治理能力,助力用户快速构建稳定、安全、高效云原生微服务体系。来...

H2/Spring在测试中重置行为异常 -相关内容

漏洞巡检说明

云安全中心提供漏洞巡检功能,支持常见漏洞类型的扫描。帮助您及时发现资产中的高危漏洞,降低安全风险。 注意 系统管理员需要及时处理并修复漏洞,否则将带来严重的安全隐患。 版本限制说明各版本支持检测和修复的... Crestron web 密码泄漏 CRLF 注入 BRPC Dashboard 未授权访问 CORS 安全设置缺陷 Go pprof 调试漏洞 Spring Boot Actuator (jolokia) XML 外部实体攻击/远程代码执行 Kibana 未授权访问 JDWP 调试漏洞 Spring Boo...

通过 Java 连接实例

您在连接 ES 实例前,请先在实例详情页面获取实例访问地址、实例访问用户。对于需要使用证书连接的 HTTPS 协议实例,还需要下载证书并保存到本地路径。如果遗忘实例访问用户(admin)的密码,可以选择重置密码。 如果需... spring-context 5.3.9 使用证书连接实例该场景适用于连接访问方式为 HTTPS 的 ES 实例,且需要认证实例的 HTTPS 证书。示例代码如下: Java package com.bytedance.openplatform.imgr.core.client;import java.io.IO...

如何使用 Cluster Autoscaler 将批处理作业的节点扩容到 2000 个

我们发现节点扩容失败是因为云服务器在初始化 Kubernetes 组件的过程中,写入磁盘的速度特别慢,很久都不能加入集群,超过了预设的超时限制,我们判定这是一个异常的节点。异常节点随后又被 CA 清理删除,那我们就很好奇... 这个计时器都会被重置,重新计算。在大规模、多节点池扩容的情况下,如果用户分批扩容,那每次扩容都会做一次重置,导致扩容过程中,空闲的节点池无法被缩容,造成资源的空跑。当前社区对此已经有解决方案,但代码还...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询