gpt4 book ai didi

java - 使用 StepVerifier 验证是否至少已经过了一段时间?

转载 作者:行者123 更新时间:2023-11-30 05:47:32 25 4
gpt4 key购买 nike

我正在使用reactor-test项目和 StepVerifier测试我的功能,myFunc ,返回 Flux<Result> :

Flux<Result> results = myFunc()

StepVerifier.create(results). ..

内部myFunc正在使用 rate-limiter来自resilience4j我想使用 StepVerifier 验证至少在流完成之前必须经过一段时间。

如何使用 StepVerifier 执行此操作?

更新1:

请注意myFunc()出于测试目的,实际调用本地运行的(假)http 服务器。所以我认为设置虚拟时间是不可能的。

更新2:

举个例子,假设 myFunc()发出 30 个请求,速率限制配置为 10 rps,因此我预计订阅将持续 3 秒多一点。 IE。我想验证是否发出了 30 个请求 ( expectNextCount(30) ) 并且一定已经过去了一定的时间 (3 秒)。

最佳答案

对我来说,听起来 thenAwait(Duration timeshift) 方法就是您正在寻找的方法。

StepVerifier.Step<T> thenAwait(Duration timeshift)
Pause the expectation evaluation for a given Duration. If a VirtualTimeScheduler has been configured, VirtualTimeScheduler.advanceTimeBy(Duration) will be used and the pause will not block testing or Publisher thread.

关于java - 使用 StepVerifier 验证是否至少已经过了一段时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54588533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com