【发布时间】:2016-09-07 12:57:43
【问题描述】:
我有一个错误,它仅在数据库运行缓慢时才会出现。它适用于最简单的数据库操作(选择等)。
我想创建测试,我强制我的数据库变慢。如何做到这一点?
我使用 Spring Boot、Spring Data、Hibernate、MariaDB。
理想情况下,我希望“慢速数据库”部分完全包含在我的 java 应用程序中的测试代码中。这样,测试将完全自动化且独立。
我只想为一项测试减慢数据库访问速度(而不是全局,所有访问)。
有人建议我引入带睡眠的数据库触发器(BEFORE SELECT)
但这并不灵活,因为它会减慢每次访问,而不是仅针对一次测试的访问。
【问题讨论】:
-
简单的答案是编写一个测试存储库类,其中嵌入了 Thread.sleep。
-
@duffymo 使用
Thread.sleep似乎是个坏主意,几乎就像故意放慢速度但不知道要放慢多少。 -
坏主意?这是一个测试——这就是我理解的整个想法。如果您愿意,可以将其设为一个范围内的随机值。关键是与失败相关的缓慢程度是已知的。
-
Thread.sleep 仅用于测试对我来说已经足够了。简单,做需要做的事。
-
this question 的一些答案可能很有趣。
标签: java spring hibernate jdbc