У меня есть пользовательский объект - я хочу сгенерировать тест для каждого пользовательского свойства и проверить, правильный ли это тип.Однако, поскольку typeof массив является объектом, утверждение не выполняется в свойствах массива с «AssertionError: ожидается, что [1] будет объектом».
Поэтому я проверил, является ли свойство массивом, а затем сгенерировал для него специальный тест.Мне интересно, если это правильный подход?У меня такое чувство, что я что-то упускаю из виду.
Object.keys(pureUser).forEach(property =>{
// since typeof array is an object we need to check this case separately or test will fail with expecting array to be an object
if (Array.isArray(pureUser[property])) {
it(`should have property ${property}, type: array`, function () {
user.should.have.property(property);
});
} else {
it(`should have property ${property}, type: ${(typeof pureUser[property])}`, function () {
user.should.have.property(property);
user[property].should.be.a(typeof pureUser[property]);
});
}
});
pureUser выглядит примерно так:
let pureUser = {
username: "JohnDoe123",
id: 1,
categories: [1,2,3,4]
}
Пользовательская переменная определяется в другом месте через got.js