gpt4 book ai didi

Elixir/Plug/Phoenix : Calling halt doesn't stop downstream plugs from getting invoked during test

转载 作者:行者123 更新时间:2023-12-01 00:52:01 24 4
gpt4 key购买 nike

如果我启动我的 phoenix 应用程序的一个实例并用请求点击它,我的插件将适本地停止。但是,在测试环境中做同样的事情,停止并不会阻止下游的插件被调用,这会导致我的测试失败。我认为问题可能来自我在测试期间调用路由器的方式。这是我正在使用的辅助函数,它大量借用了 phoenix 框架本身的类似函数:

def call(router, verb, path, params \\ nil, headers \\ []) do
add_headers(conn(verb, path, params), headers)
|> Plug.Conn.fetch_params
|> Plug.Parsers.call(parsers: [Plug.Parsers.JSON],
pass: ["*/*"],
json_decoder: Poison)
|> router.call(router.init([]))
end
关于为什么像这样调用我的路由器会导致停止工作的任何想法?
编辑:所以我升级到 Phoenix 0.13.1 以使用他们的新端点测试模块而不是我推出的助手。我会报告这是否解决了问题。

最佳答案

halt仅适用于插头管道内。如果您是手动管道,那么您需要手动检查是否停止。

老实说,我会放弃您当前的管道,并从您的测试中调用实际的端点。端点管道非常快,您应该不会看到任何减速。

关于Elixir/Plug/Phoenix : Calling halt doesn't stop downstream plugs from getting invoked during test,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30649351/

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