You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何断言异步任务需在指定最短与最长时间范围内完成?

断言任务执行时长在指定区间内

你可以用两种方式实现这个需求:

方式一:链式结合两个异步断言

直接把NotCompleteWithinAsync和CompleteWithinAsync链式调用就行,注意顺序——先断言任务不会在最短时长内完成,再断言不会超过最长时长完成:

await obj.Awaiting(o => o.DoSomethingAsync())
         .Should().NotCompleteWithinAsync(1.Second())
         .And.CompleteWithinAsync(2.Seconds());

要是任务用时不足1秒,第一个断言会失败;超过2秒的话,第二个断言失败,刚好符合你的要求。

方式二:捕获执行时长后单独断言

如果需要更灵活的验证逻辑,也可以先记录任务的实际执行时间,再对时长做区间断言:

var stopwatch = Stopwatch.StartNew();
await obj.DoSomethingAsync();
stopwatch.Stop();

stopwatch.Elapsed.Should().BeBetween(1.Second(), 2.Seconds());

这种方式更直观,也方便后续扩展更复杂的时长校验规则。

内容的提问来源于stack exchange,提问作者tg73

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 01:50:25