Почему мои свойства не установлены в моем модульном тесте js? - PullRequest
0 голосов
/ 17 декабря 2018

Я новичок в модульном тестировании с Javascript.У меня есть следующая модель:

export class CartItem {
  item: Item;

  someVariableWhichIsNotImportant = {};

  varA = 12;
  constructor(cfg: Partial<CartItem> = {}) {
    if (!cfg.item) {
      throw new Error('Item is missing');
    }
    //...some other error conditions
    this.item = cfg.item;
    //....some other variables
  }
}

Затем мои очень простые, но сломанные модульные тесты выглядят следующим образом:

import { Item } from './item.model';
import { CartItem } from './cart-item.model';

describe('something to describe', () => {
  let a;
  const titel = "blah blah";
  const ITEM_1 = new Item();
  ITEM_1.title = title1 

  const CART_ITEM = new CartItem();
  CART_ITEM.item = ITEM_1;

  it('should have a start date of xxx', () => {
    expect(ITEM_1.tile).toBe(title1);
  });

});

Когда я запускаю тест, у меня есть Error: Item is missing.Что я делаю не так?

1 Ответ

0 голосов
/ 17 декабря 2018

Вам нужно ввести зависимости в new CartItem();Конструктор для CartItem в вашем коде ожидает: cfg: Partial<CartItem> для создания экземпляра класса.

Добавьте макет cfg к вашему CART_ITEM Пример:

const CART_ITEM = new CartItem(mockedCfg);

попытатьсяпередайте эти значения во время инициализации, и это должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...