Жасмин 2.0 модульное тестирование на заводе angularjs

Я новичок в написании тестовых случаев с жасмином для angularJS factory. Я хочу проверить всю фабрику, но я не могу получить getKeys, Вот моя фабрика.

Моя фабрика это:

'use strict';
var a11yModule = angular.module('TestModule', ['ui.bootstrap']);
a11yModule.factory('TestFacotry', ['$q', '$timeout', function ($q, $timeout) {
    return {
        getKeys: function () {
            return {
                "abc": 32,
                "gpa": 33,
                "end": 35
            };
        }
    };
}])

Моя единица спецификации:

describe('modu testing', function () {
    var TestFacotryMock, q, timeout;
    beforeEach(module('TestModule', ['ui.bootstrap']));

    beforeEach(inject(function (_$q_, _$timeout_, _TestFacotry_) {
        q = _$q_;
        timeout = _$timeout_;
        TestFacotryMock = _TestFacotry_;

    }));

    it('Should ', function () {
        //var output = TestFacotryMock.getKeys.something();
        expect(typeof getKeys()).toBe('function');
    });

});

Ошибка

Ошибка: [$injector:modulerr] Не удалось создать экземпляр модуля TestModule из-за: Ошибка: [$injector:modulerr] Не удалось создать экземпляр модуля ui.bootstrap из-за: Ошибка: [$injector:nomod] Модуль 'ui.bootstrap' не является имеется в наличии! Вы либо неправильно написали имя модуля, либо забыли загрузить его. При регистрации модуля убедитесь, что вы указали зависимости в качестве второго аргумента.

1 ответ

На jamin нужно ссылаться перед угловыми модулями в index.html, потому что библиотека angular-mock имеет зависимость от jasmin.

загружать библиотеки как jasmin angular, angular-mock из локальной папки вместо веб

,

<link data-require="jasmine" data-semver="1.3.1" rel="stylesheet" href="http://cdn.jsdelivr.net/jasmine/1.3.1/jasmine.css">
<script data-require="jasmine" data-semver="1.3.1" src="http://cdn.jsdelivr.net/jasmine/1.3.1/jasmine.js"></script>
<script data-require="jasmine" data-semver="1.3.1" src="http://cdn.jsdelivr.net/jasmine/1.3.1/jasmine-html.js"></script>        
<script data-require="angular.js" data-semver="1.1.5" src="http://code.angularjs.org/1.1.5/angular.min.js"></script>
<script data-require="angular-resource.js" data-semver="1.1.5" src="http://code.angularjs.org/1.1.5/angular-resource.min.js"></script>
<script data-require="angular-mocks" data-semver="1.1.5" src="angular-mocks.js"></script>
<link rel="stylesheet" href="style.css">
<script src="jasmineBootstrap.js"></script>
<script src="script.js"></script>
<script src="addSpec.js"></script>

какая-то ошибка в модульном тесте

it('Should ', function () {

    expect(typeof TestCommonMock.getKeys()).toBe('object');
});
Другие вопросы по тегам