AngularJS - WebSQL - Тесты в Карме с Жасмином на объекте, возвращающем несколько обещаний

0

Я получил некоторые модульные тесты, чтобы сделать о службе, которую я использую (angular-websql), и у меня возникла проблема с зудом.

Эта служба - $ webSql - создаст базу данных, которая представляет собой объект с несколькими функциями:

$scope.db = $webSql.openDatabase('lastUser', '1.0', 'Data storage of last connected user', 2 * 1024 * 1024);
$scope.db.select(tableName, whereClause).then(function (result) {...});
$scope.db.insert(tableName, whereClause).then(function (result) {...});
$scope.db.update(tableName, whereClause).then(function (result) {...});
$scope.db.del(tableName, whereClause).then(function (result) {...});

And so on...

В своем модульном тесте я издевался над службой:

 mock$webSql = {
  openDatabase: function () {
    return {
      createTable: function () {
        var d = _$q_.defer();
        d.resolve();
        return d.promise;
      },
      insert: function () {
        var d = _$q_.defer();
        d.resolve();
        return d.promise;
      },
      del: function () {
        var d = _$q_.defer();
        d.resolve();
        return d.promise;
      },
      update: function () {
        var d = _$q_.defer();
        d.resolve();
        return d.promise;
      },
      select: function () {
        var d = _$q_.defer();
        d.resolve();
        return d.promise;
      }
    };
  }
};

Проблема в том, что я оцениваю результаты моего обещания в моем контроллере, например, я тестирую результат после функции select, чтобы увидеть, есть ли у меня строка в моей таблице. Итак, я использую некоторые вещи, такие как result.rows.length но я не знаю, как протестировать его с помощью Jasmine.

Теги:
unit-testing
karma-jasmine
web-sql

1 ответ

0
Лучший ответ

Готово. Мне просто пришлось вставить d.resolve() объект, соответствующий структуре тестируемого объекта результата, т.е.

|
|
select: function () {
    var d = _$q_.defer();
    d.resolve({row : [] });
    return d.promise;
}
|
|

Ещё вопросы

Сообщество Overcoder
Наверх
Меню