Использование Jasmine beforeEach асинхронно при передаче this.result для тестирования - PullRequest
0 голосов
/ 10 февраля 2020

Следующий код не проходит модульный тест, потому что this.result все еще не определен. Моя проблема с переменной областью, асинхронным поведением или чем-то еще, о чем я не думал? Моя конечная цель состоит в том, чтобы пройти этот тест, где this.result == "somevalue"

describe("This is a test", ()=> {
  beforeEach(async ()=> {
    this.result = await "somevalue";
  })

  it("should be somevalue", async ()=> {
    await this.result;
    expect(this.result).toBe("somevalue")
  })
});

Редактировать: я попробовал следующее и заставил его работать, однако есть способ пройти это. [Некоторая переменная], как мы видим в документация по Жасмин для использования beforeEach()?

describe("This is a test", ()=> {
  let result = undefined;
  beforeEach(async ()=> {
    result = await "somevalue";
  });

  it("should be somevalue", async ()=> {
    await result;
    expect(result).toBe("somevalue");
  })
});

1 Ответ

0 голосов
/ 10 февраля 2020

Это Angular?

Попробуйте использовать функцию обратного вызова (готово):

describe("This is a test", ()=> {
  beforeEach(async (done)=> {
    this.result = await "somevalue";
    done();
  })

  it("should be somevalue", async ()=> {
    await this.result;
    expect(this.result).toBe("somevalue")
  })
});

Я нахожу это странным, потому что не знаю, какое значение this is.

Почему мы await используем "somevalue", это строка, ничего асинхронного в этом нет, но, надеюсь, функция done может вам помочь.

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