Я тестирую остальные API с помощью Jest.Я знаю, что мы используем toEqual
, чтобы проверить, являются ли два объекта равными или нет, путем рекурсивного сравнения всех свойств.
Для примитивных значений toEqual
использует Object.is
для сравнения.
Проблема
Проблема, с которой я столкнулся при тестировании конечной точки /register
.После успешной регистрации пользователя конечная точка возвращает данные пользователя.Детали использования содержат такую информацию, как телефон, имя, адрес электронной почты и, что более важно, в этом случае user_id .
Теперь то, что я пытаюсь сделать, выглядит следующим образом:
const data = {
sponsor_id: 'ROOT_SPONSOR_ID',
phone: '9999999999',
name: 'Joe',
password: 'shhhhh'
};
// Some API call goes here which returns `body`
expect(body).toEqual({
user_id, // <-- How to test value of this?
sponsor_id: data.sponsor_id,
phone: data.phone,
name: data.name
});
Я не знаю заранее, каково будет возвращаемое значение поля user_id
.Все, что я знаю, это был бы номер.Теперь это может быть любое числовое значение, так как в этом случае проверить свойство объекта с любым значением или любым числовым значением?
Одна вещь, которую я также хотел проверить, отправляю ли я какие-либо дополнительные данные(свойства), чем я ожидаю. Что, кстати, с помощью toEqual
уже позаботилось.
Если мой подход к тому, как я тестирую это неверно, то, пожалуйста, предоставьте мнес лучшим с некоторыми объяснениями.