我从PostgreSQL
数据库和一个简单的CRUD服务/存储库(所有基于spring-boot的)获得了一个简单的API加载数据。我在服务层中将我的创建/更新方法标记为:
@Transactional(timeout=5)
public void create(Entity x){
...
repository.save(x)
}
如何测试(顺便进行集成测试)将抛出超时异常下的条件?我的存储库是CrudRepository
的扩展名。
像doTimeout(6000).when(repository).save(...)
答案 0 :(得分:0)
您应该参数化超时值并通过配置文件提供,然后在集成测试中将其设置为测试值。这允许您在生产配置文件中包含生产值,并在测试配置文件中测试值。
例如,在名为application-test.yaml
的配置文件中有一个条目:
postgres.config:
timeout: 10
然后将timeout=5
替换为"${postgres.config.10:20}"
。如果在没有特定配置文件的情况下启动应用程序,则20
指定默认值。