JSON 响应的单元测试,匹配 JSON 响应以断言键和值
Unit test for JSON response, matching against the JSON response to assert for keys and value
如何测试我的 JSON 响应中的键。
目前我正在这样做:
assert json_response(conn, 200) == %{
"success" => true,
"errors" => []
}
现在假设我的 JSON 响应中有另一个键和值,例如:
"user" : {id: 123, name: "john"}
我如何首先测试以确保密钥 "user" 在我的响应中。
如果名字是 "john" 我怎么能断言?
您可以像这样拆分断言,但也可以将其合并为一个断言。
assert %{
"success" => true,
"errors" => [],
"user" => user
} = json_response(conn, 200)
assert %{
"id" => _id,
"name" => "john"
} = user
请注意 =
符号之前的模式匹配方式。通常不需要相等性检查 (==
)。
此外,我可以匹配 "id" 键,但该值将被忽略。当每个测试的 id
发生变化时,这会很有帮助。
如何测试我的 JSON 响应中的键。
目前我正在这样做:
assert json_response(conn, 200) == %{
"success" => true,
"errors" => []
}
现在假设我的 JSON 响应中有另一个键和值,例如:
"user" : {id: 123, name: "john"}
我如何首先测试以确保密钥 "user" 在我的响应中。 如果名字是 "john" 我怎么能断言?
您可以像这样拆分断言,但也可以将其合并为一个断言。
assert %{
"success" => true,
"errors" => [],
"user" => user
} = json_response(conn, 200)
assert %{
"id" => _id,
"name" => "john"
} = user
请注意 =
符号之前的模式匹配方式。通常不需要相等性检查 (==
)。
此外,我可以匹配 "id" 键,但该值将被忽略。当每个测试的 id
发生变化时,这会很有帮助。