Испытание пустоты с кармой жасмин угловой2 - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь проверить свой код с жасмином и кармой.

Когда я тестирую метод, который возвращает значение, все в порядке. Но моя проблема в том, как я могу проверить метод void (который ничего не возвращает), например, такой:

public aj(a: Array<x>, p: x) {
 if (a.indexOf(p) < 0) {
   a.push(p);
  }
 }

С помощью этой функции я проверяю, содержит ли массив объекта `x объект или нет.

Если это не так, я добавляю его в массив. Вот и все.

Я проверяю это так

  it('', () => {
  let component= new synthese(consoService);
   let x = [pHC,pHP]
   spyOn(component,'aj');
   expect(component.aj(x,pI)).toHaveBeenCalled();

  });

Я получил эту ошибку

Error: <toHaveBeenCalled> : Expected a spy, but got undefined.
Usage: expect(<spyObj>).toHaveBeenCalled()

Может кто-нибудь помочь мне, пожалуйста? Я пытался, но всегда получаю ошибки.

1 Ответ

0 голосов
/ 02 июля 2018

Измените свой код следующим образом:

it('', () => {
  let component = new synthese(consoService);
  const spyAj = spyOn(component, 'aj');
  let x = [pHC, pHP]; // maybe you should check this, shouldn't it be let x = ['pHC','pHP']; ?

  component.aj(x, pI); // maybe you should check this, shouldn't it be component.aj(x, 'pI'); ?

  expect(spyAj).toHaveBeenCalled();
  // also, I recommend do this test:
  // check pI is in the array now since that's what the method does, push the element if it is not in the array
  expect(x.indexOf(pI)).not.toBe(-1); // I used pI, but maybe check for 'pI' as my previous recommendations.
});
...