Как я могу проверить директиву с помощью templateUrl в браузере без головы Chutzpah

Кто-нибудь знает, как получить браузер без головы, как Chutzpah?s Visual Studio Test Adapter, позволяющий директиве получить доступ к файлу .html шаблона? Chutzpah использует PhantomJS для безголового браузера, который ограничивает мои возможности.

м с использованием Chutzpah Test Adapter 2.5 и AngularJS 1.2.0-r.2.

Я получаю ошибку:

Неожиданный запрос: ПОЛУЧИТЕ myApp / directives / template.html

Это вызвано тем, что Angular пытается использовать службу $ http для доступа к моей директиве 'Шаблон. Я

Мы нашли несколько разных обходных путей:

Вручную используйте XMLHttpRequest для импорта шаблонов.Использование утилиты, такой как Grunt, для вставки шаблона в вашу директиву 'код JS.$httpBackend.when('GET', 'myApp/directives/template.html').passThrough() - это работает только в тестах e2e, а не в модульных тестах.Поместите шаблон прямо в тестовый код.

Ни один из этих вариантов меня особо не устраивает. Я'Я предпочел бы иметь возможность позволить директиве загружать свой шаблон прозрачно, чтобы я мог проверить его как компонент. Есть ли способ заставить этот сценарий работать?

Пример кода:

angular.module('myDirective', []).directive('myDirective', function() {
    return {
        restrict: 'E',
        transclude: true,
        templateUrl: 'myApp/directives/template.html',
        // Some other options, omitted for brevity.
    };
});

template.html:


Пример теста Жасмин:

describe('myDirective', function() {
    // Assign $scope using inject(), load module etc.
    // Insert workaround for $httpBackend loading my templateUrl here.
    it('should transclude content', function() {
        var element = $compile("Look Mom, I'm in my directive!")($scope);
        $scope.$digest();

        expect(element.text().trim()).toBe("Look Mom, I'm in my directive!");
    });
}

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

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