я получаю следующий ответ от API:
{
"fieldErrors": [
{
"field": "firstName",
"code": "Pattern",
"message": "Invalid characters"
},
{
"field": "repeatPassword",
"code": "Size",
"message": "Size must be between 6 and 64 characters"
},
{
"field": "password",
"code": "Size",
"message": "Size must be between 6 and 64 characters"
},
{
"field": "firstName",
"code": "Size",
"message": "Size must be between 3 and 32 characters"
},
{
"field": "lastName",
"code": "Pattern",
"message": "Invalid characters"
},
{
"field": "email",
"code": "Size",
"message": "Size must be between 3 and 256 characters"
},
{
"field": "password",
"code": "AmRestUser.PasswordTooWeak",
"message": "Password is to weak (must consist of upper and lower case, digits, and can't contain first name)."
},
{
"field": "phoneNo",
"code": "order.summary.invalidPhone",
"message": "Invalid Phone"
}
],
"isSuccess": false
}
Я пишу API-тесты с использованием Mocha и хочу проверить поля всех существующих ошибок
Я пишу следующие тесты:
var selected = res.body.fieldErrors.filter(function(item){
return (item["field"]=="firstName" && item["code"] == "Pattern" && item["message"]=="Invalid characters");
});
assert.equal(selected.length,1);
selected = res.body.fieldErrors.filter(function(item){
return (item["field"]=="repeatPassword" && item["code"] == "Size" && item["message"]=="Size must be between 6 and 64 characters");
});
assert.equal(selected.length,1);
У меня есть тесты, но есть много избыточного кода, в этом случае я должен написать один и тот же код восемь раз, трудно поддерживать
Теперь я хочу написать одну функцию, в параметрах которой я мог бы передать json, а также имена кода, сообщения и поля.Функция должна возвращать количество вхождений, как я могу это сделать?