【发布时间】:2021-03-16 23:52:42
【问题描述】:
我正在进行以下测试:
test "accepts a request on a socket and sends back a response (using tasks)" do
spawn(HttpServer, :start, [4000])
urls = [
"http://localhost:4000/products",
"http://localhost:4000/shops",
]
urls
|> Enum.map(&Task.async(fn -> HTTPoison.get(&1) end))
|> Enum.map(&Task.await/1)
|> Enum.map(&assert_successful_response/1)
end
defp assert_successful_response({:ok, response}) do
assert response.status_code == 200
end
但是,我正在寻找一种方法来删除 assert_successful_response 方法并在管道内进行断言。下面的示例说明了我要完成的工作,但当然,它不起作用:
urls
|> Enum.map(&Task.async(fn -> HTTPoison.get(&1) end))
|> Enum.map(&Task.await/1)
|> Enum.map(&Task.async(fn(response) ->
assert response.status_code == 200
end))
我该怎么做?
【问题讨论】: