Я хочу проверить, имеет ли объект тип corrent.
У меня есть
class Pizza {
constructor (public: name: string, public toppings: string[]
}
class PizzaMakes {
static create(data: Pizza) {
return new Pizza(data.name, data.toppings);
}
}
, а затем в спецификации плитки
const pizza = new PizzaMaker.create({name: 'Italiano', toppings: ['chesse']});
expect(pizza).toEqual(jasmine.any(Pizza));
Я хочу проверить, еслипицца типа пиццы.Таким образом, тест корректен, но он все еще корректен, когда я изменяю имя свойства или тип свойства, например
const pizza2 = new PizzaMaker.create({name_v2: 'Italiano', toppings: ['chesse']});
enter code here
const pizza3 = new PizzaMaker.create({name: 123, toppings: ['chesse']});
В версии для пиццы я хочу убедиться, что у Pizza нет свойства name_v2 и в pizza3, чем nameне строка.
Во всех версиях jasmine.any (Пицца) правильно.
Спасибо
РЕДАКТИРОВАТЬ:
Я делаю это, этохорошая практика ?
interface PizzaModel {
name: string;
toppings: string[];
}
class Pizza implements PizzaModel {
constructor(
public name: string,
public toppings: string[]
) {}
}
describe('pizza', () => {
it ('pizza test', () => {
const pizza = new Pizza('Peperoni', ['cheese', 'peperoni']);
expect(pizza.hasOwnProperty('name')).toBeTruthy();
expect(pizza.name).toEqual(jasmine.any(String));
expect(pizza).toEqual(jasmine.objectContaining({
name: 'Peperoni'
}));
})
});