Typescript / Жасмин тестирование объекта Тип - PullRequest
0 голосов
/ 18 февраля 2019

Я хочу проверить, имеет ли объект тип 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'
    }));
  })
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...