Тестирование Отдых Звонки с кармой и угловым

0

Я пытаюсь проверить свои угловые призывы отдыха с кармой и жасмином. для начала я просто хочу, чтобы проверить мой Auth службу и сделать простой вход.

describe('Auth Service', function () {
    var httpBackend,
        service;

    beforeEach(function () {
        angular.mock.module('mean');

        inject(function ($httpBackend, Auth) {
            httpBackend = $httpBackend;
            httpBackend.expect('POST', '/auth/v1/login', { email: '[email protected]', password : 'password' }).respond({
                response: {
                    success: true
                }
            });

            service = Auth;
        });
    });

    it('should login.', function () {
        var result;

        service.login('[email protected]', 'password').then(function (response) {
            result = response;
        });

        httpBackend.flush();
        // TODO
    });
});

Я знаю, что этот код не будет работать так, как есть, но, к сожалению, я даже не дошел до того, чтобы проверить, правильно ли выполняется повторный вызов. Я получаю следующее исключение:

Error: Unexpected request: GET internationalization/locale-en.json
Expected POST /auth/login

locale-en.json - один из моих файлов интернационализации, который я не упоминал нигде в этом тесте (или даже в службе Auth).

здесь реализация функции входа в Auth Service:

function login(email, password) {
    var deferred = $q.defer();
    $http.post('/auth/v1/login', {email: email, password: password})
        .success(function (t) {
            $localStorage.token = t;
            deferred.resolve(t);
        })
        .error(function (err) {
            deferred.reject(err);
        });

    return deferred.promise;
}

Откуда возникает случайный вызов GET для json и что я делаю неправильно здесь?


изменить: my karma.conf.js

module.exports = function (config) {
config.set({
    basePath: '',
    frameworks: ['jasmine',/* 'requirejs',*/ 'browserify'],

    plugins: [
        //'karma-requirejs',
        'karma-jasmine',
        'karma-browserify',
        'karma-chrome-launcher'
    ],

    files: [
         'public/bower_components/angular.js'
         // other bower_components
        'node_modules/requirejs/require.js',
        'node_modules/karma-requirejs/lib/adapter.js',

        'public/app.js',
        'public/config/*.js',
        'public/controllers/**/*.js',
        // services, directives, filters, internationalization just like the ctrl's
        'public/tests/*.js'
    },
    exclude: [],
    preprocessors: {
        'public/tests/*.js': [ 'browserify' ]
    },
    // the rest is standard karma config

})};

Я прокомментировал require.js, так как всегда получаю ошибку

http://requirejs.org/docs/errors.html#mismatch
  at /home/markus/git/dealscreening/node_modules/requirejs/require.js:140

которые я не могу исправить. Я также добавил файл test-main.js для require.js (иначе я вообще не смог бы запустить тесты кармы)

var tests = [];
for (var file in window.__karma__.files) {
    if (window.__karma__.files.hasOwnProperty(file)) {
        if (/Spec\.js$/.test(file)) {
            tests.push(file);
            console.log('requireJS:', file);
        }
    }
}

requirejs.config({
    baseUrl: '/base',
    paths: {},
    deps: tests,
    callback: window.__karma__.start
});

Вероятно, моя конфигурация кармы как-то не так, к сожалению, я действительно не знаю, как правильно ее настроить, так как ни один из обучающих программ, которые я прошел, по-видимому, не работает в моем проекте.

Пример проекта github:

https://github.com/markus138/karmatest

проверить его:

npm install
cd public
bower install
cd ..
npm test

версии: угловая 1.4.4 карма 0.13.9 жасмин 2.3.4

  • 0
    Было бы полезно увидеть ваш полный конфигурационный файл кармы и тестовый файл, я подозреваю, что вы вводите модуль в beforeEach или куда-то, где требуется этот файл и, следовательно, вызывает проблему.
  • 0
    Я добавил свой конфиг кармы. Чем больше я смотрю на свой конфиг, тем больше я уверен, что я делаю что-то совершенно не так, я просто не могу понять, что именно
Показать ещё 6 комментариев
Теги:
unit-testing
karma-jasmine

1 ответ

0

Вероятно, вы ссылаетесь на основной модуль в своем тесте. Поэтому обычно у вас есть определенный маршрутизатор с разными состояниями. Возможно, он пытается загрузить html, потому что вы определили его так. Вы можете пропустить игнорировать вызов, ответив 400 на ожидание. Приветствую

Ещё вопросы

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