Это должно быть просто, но я просто не могу понять, что я должен делать.У меня есть действие контроллера, подобное этому:
def submit(conn, %{"id" => id, "_json" => results}) do
...
end
(ключ _json
автоматически генерируется Plug.Parsers.JSON
во входящем массиве JSON)
И я хочу его протестировать.Однако, если я напишу
post(conn, experiment_path(conn, :submit, %{})),
или что-то вроде
post(
conn,
experiment_path(conn, :submit, %{
"id" => "123",
"_json" => [%{"a" => 1, "b" => 2}, %{"a" => 3, "b" => 4}]
})
)
, я получу
** (ArgumentError) maps cannot be converted to_param. A struct was expected, got: %{:_json => %{}, "id" => "123"}
Раздражает то, что я не уверен, какой типструктура точно ожидается здесь.Я немного искал, но большинство онлайн-ресурсов, похоже, рассказывают о том, как проверить отправку ответов JSON, а не о том, как получать данные JSON.
Как правильно указать полученные данные JSONконтроллером и напиши тест?