Ожидаемое значение после setTimeout, в котором установлен - PullRequest
0 голосов
/ 05 апреля 2019

Я не могу установить ожидаемое значение равным в setTimeout.У меня есть два ценных: const first = 0;const second = 0;

, но эта ошибка выброса - Uncauth TypeError: вы указали 'undefined' там, где ожидался поток.Вы можете предоставить Observable, Promise, Array или Interable.

setNumber() {
   setTimeout(() => {
     first = 12;
     second = 1235
}, 250);

it('Should execute setNumber', fakeAsync(() => {`
   setTimeout(() => {
     expected(first).toEqual(12);
     expected(second ).toEqual(1235);
   }, 251)
}))

1 Ответ

0 голосов
/ 05 апреля 2019

В функции fakeAsync используйте tick () для эмуляции времени ожидания.Примерно так:

it('Should execute setNumber', fakeAsync(() => {
    let first;
    let second;

    setTimeout(() => {
      first = 12;
      second = 1235;
    }, 250);

    tick(251);

    expect(first).toEqual(12);
    expect(second).toEqual(1235);
  }));

Для понимания отметьте 249, и тест не пройден.

it('Should execute setNumber', fakeAsync(() => {
    let first;
    let second;

    setTimeout(() => {
      first = 12;
      second = 1235;
    }, 250);

    tick(249);

    expect(first).toEqual(12);
    expect(second).toEqual(1235);
  }));

Надеюсь, я вам помог:)

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