2014-01-05 2 views
1

Я пытаюсь запустить единичный тест, который проверяет пользовательскую анимацию addClass. Независимо от того, что я пытаюсь, включая запуск образцов из Интернета, пользовательские анимации запускаются в кассете проверки кармы. ПРИМЕЧАНИЕ. Мой анимационный код отлично работает на рабочем месте. Я просто хочу, чтобы иметь возможность генерировать тесты жасмина для моей анимации.

module.exports = function(config) { 
    config.set({ 
    basePath: '', 
    frameworks: ['jasmine'], 
    files: [ 
     'Scripts\\angular.js', 
     'Scripts\\angular-animate.js', 
     'Scripts\\angular-mocks.js', 
     'Scripts\\animate-scr.js', 
     'Scripts\\animate-test.js', 
    ], 
    exclude: [ 
    ], 
    reporters: ['progress'], 
    port: 9875, 
    colors: true, 
    logLevel: config.LOG_INFO, 
    autoWatch: true, 
    browsers: ['Chrome'], 
    captureTimeout: 60000, 
    singleRun: false 
}); 
}; 

Вот мой исходный код для анимации.

var counter = 0; 
var testapp = angular.module('testapp', ['ngAnimate']); 

    testapp.counter = 2; 

    testapp.animation('.footeropen', function() { 
    return { 
      addClass : function(element, className) { 
      testapp.counter = 3; 
     } 
    }; 
}); 

А вот мой юнит-тесты код

describe('Testing Animations', function() { 
    beforeEach(module('testapp')); 
    beforeEach(module('mock.animate')); 

    it("should synchronously test the animation", 
      inject(function($animate, $rootScope) { 
     var element = angular.element('<div>hello</div>'); 
     $animate.addClass(element, 'footeropen'); 
     $rootScope.$digest(); 
     expect(testapp.counter).toBe(3); 
    })); 
}); 
+0

убедитесь, что параметр angular-animate.js настроен в файле karam.conf.js. в противном случае ваш код будет работать с noop-реализацией $ animate-сервиса. – michael

+0

mseemann, как это отличается от декларации конфигурации в верхней части сообщения. Есть ли что-то еще, что я пропускаю, кроме объявления углового-animate.js в разделе файлов. – morrisseyd

+0

Вы правы - моя ошибка! – michael

ответ

0

Его с разочарованием, что я обнаружил, что издевались объект одушевленным активно останавливает пользовательские анимации на addClass() и removeClass(). Точный комментарий в коде:

//There is no point in perform a class-based animation if the element already contains 
//(on addClass) or doesn't contain (on removeClass) the className being animated. 
//The reason why this is being called after the previous animations are cancelled 
//is so that the CSS classes present on the element can be properly examined. 

Я смотрел запустить его без издевались одушевленный предмет, и это вызывает подобную реакцию.

Так что тестирование на этом этапе невозможно.

Смежные вопросы