Как использовать жасмин для проверки асинхронной функции, которая требует много времени для ответа?

используя функцию для извлечения данных из webapi. В основном используя .I '$.ajax

м сейчас тестирую сwaits() как это:

describe('xxxxxxxxxxxxxxxxxxxxx', function () {
  var r;
  it('fetchFilter', function () {
    runs(function () {
      model.fetch(opts)
      .done(function(data) {
        r = data;
      });
    });

    waits(2000);

    runs(function () {
      expect(r[0].gender).toBeDefined();
    });
  });
});

Проблема в:

Это'не гарантируется, чтоwaits(2000) сделает работу хорошо. По разным причинам (сетевые подключения, эффективность алгоритма самого приложения и т. Д.) Мне может потребоватьсяwaits(5000) или больше, или для некоторых моделейwaits(500) достаточно. И самое неприятное, что этовсе вышло из-под контроля.Многоwaits() заставляет тестовые спецификации тратить много времени на ожидание. Время запуска всего набора слишком велико, чтобы его принять.

Есть ли некоторыеbest practice делать там такие вещи?

PS: я знаю, что модульный тест не должен применяться к какой-либо функции, которая использует webapi или базу данных. Но я'я работаю с одностраничным js-heavy-webapp. Процесс извлечения данных так же важен, как и то, как я буду использовать их с моделями js.

Ответы на вопрос(3)

Ваш ответ на вопрос