這裏沒有太多要測試的東西。但作爲一種感覺良好的測試,您可以將模板加載到緩存中,並在特定元素已被渲染或不作爲感覺良好的測試時進行測試。
例子: -
describe('templates', function() {
beforeEach(inject(function ($rootScope, $templateCache, $compile) {
// Set an arbitrary template to test
$templateCache.put('temp1.html', '<div class="test">Hello</div>');
element = angular.element("<templates template='temp1'></templates>");
$compile(element)(scope);
$rootScope.$digest();
}));
it('Should load template', function() {
expect(element.find('.test').length).toEqual(1); //Test if element has loaded template properly
expect(element.find('.test').text()).toEqual("Hello");
});
Demo
在不同的注意你的指令可以打破,如果沒有提供template
,它需要從templateurl函數返回一個模板。你也可以使這個簡單的指令更通用。
.directive('templates',function() {
return {
restrict:'E',
templateUrl: function(e,attr) {
return attr.template + ".html"
};
});
在這裏沒有什麼可以測試的,因爲您最終只能測試angular的templateUrl函數評估。
來源
2014-10-09 19:43:50
PSL
謝謝。我主要是難以將模板納入測試 – 2014-10-09 20:41:29