Jest: Как проверить наличие дополнительных ключей объекта - PullRequest
0 голосов
/ 01 июня 2018

Скажем, у меня есть объект ниже

const obj1 = {name: hope.any (String)}

Обратный ответ от сервера, как показано ниже, с ключом объекта'age' в качестве необязательного ключа

const response = {name: 'bbb', age: 10}

Итак, как я могу утверждать, что у obj1 есть возраст как необязательныйключ, что означает, что если он существует, он должен быть числового типа, если он не существует, мы можем опустить проверку?

Ожидается (ответ) .toMatchObject (obj1);

Ответы [ 2 ]

0 голосов
/ 02 августа 2019

Я не думаю, что для этого есть встроенная функция, но она делает то, что вам нужно:

expect({age: 0, ...response}).toMatchObject(obj1);

(если возраст отсутствует в объекте, он примет 0; еслиприсутствует, он будет использовать текущее значение и поэтому потерпит неудачу, если это неправильный тип)

0 голосов
/ 01 июня 2018

Из того, что я могу понять, вы хотите проверить, что, если свойство определено, убедитесь, что его тип является числом?А если свойство не существует, то не проверять тип свойства?Правильно?

Предполагая, что вышеприведенное понимание верно, это должно сделать:

        const response = {name: "bbb", age:10};
        if (response.age) {
            if (typeof response.age === 'number') {
            console.log("age is a number");
            //your logic if age is a number
            }
            else {
            //your logic in case age exists but its not a number
            }
        }
        else {
        //your logic in case age does not exist
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...