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