【发布时间】:2018-09-21 20:40:43
【问题描述】:
我正在寻找一种能够在我的一个控制器测试中重现 Hackney HTTP POST 请求超时的方法。我也在使用 ExVCR,但这似乎也不允许您强制请求超时。
我尝试在发出请求时将 Hackney 超时设置为 1,但它超时了,但我不想在测试中实际发出请求。
我愿意使用模拟/存根,但要确保我仍然可以在单元测试中使用 ExVCR,这些单元测试实际上向我正在集成的服务发出请求。我见过的所有模拟库和模式都将整个模块用于整个测试环境,这不是我想要的。
这是我提出的请求的示例:
:hackney.post(url, [timeout: 1], body, get_auth())
我希望它返回 {:error, :timeout},这是 Hackney 在真实超时场景中返回的内容。
【问题讨论】:
-
如果你使用mock,你可以只在一个测试中模拟一个函数,你也有一个passthrough选项,这样所有不匹配指定的请求都会进入模块。跨度>
标签: elixir phoenix-framework ex-unit