Как я могу проверить директиву с помощью 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!");
});
}