如何使用 HttpTest (flurl) 模拟更长的响应时间(不是超时)

How to simulate longer response time (not timeout) using HttpTest (flurl)

我想配置HttpTest模拟慢响应测试;比如在响应配置​​的 RespondWith* 响应之前等待 X 秒。有什么建议吗?

这不直接受支持。单元测试应该很快(SimulateTimeout 立即抛出 FlurlHttpTimeoutException,而不是实际暂停),但我想我可以看到这在某种集成测试中很有用。

有一种方法可以做到这一点。 RespondWith 的 low-level 重载需要构建器函数。您可以在此处添加暂停,尽管它不支持异步,所以我建议 Thread.Sleep 而不是 Task.Delay。 (不理想,但老实说,它在设计时并没有考虑到这个用例。)

在你的设置中应该这样做:

httpTest.RespondWith(() => {
    // pause for 1 second
    Thread.Sleep(1000);
    return new StringContent("ok");
});