Angular指令上的Karma测试返回意外请求
Karma test on Angular directive returns unexpected request
我有一个简单的指令:
使用严格的;
angular
.module('app')
.directive('ngEmailMask', ngEmailMask);
function ngEmailMask() {
var directive = {
replace: true,
restrict: 'EA',
scope: {
user: '@',
host: '@'
},
template: '<a href="mailto:{{user}}@{{host}}">{{user}}@{{host}}</a>'
};
return directive;
}
我正在写一个Karma单元测试来检查指令输出正确的HTML。到目前为止,我得到了这个:
describe('ngEmailMask', function() {
// Bindable members
var $compile,
$rootScope;
// Load module
beforeEach(angular.mock.module('app'));
// Bind injected references to local variables
beforeEach(inject(function(_$compile_, _$rootScope_) {
$compile = _$compile_;
$rootScope = _$rootScope_;
}));
// Verify service returns
it('Replaces the tag with the correct HTML', function() {
// Compile element
var element = $compile('<ng-email-mask data-user="test" data-host="gmail.com"></ng-email-mask>')($rootScope);
// Evaluate scope
$rootScope.$digest();
console.log(element.html());
});
});
我遵循了Angular网站上的例子,但是上面的例子返回了一个错误:
Error: Unexpected request: GET /app/home/home.html
该路径与指令无关,可能会改变(这一切都与我使用的UI路由器中的状态和路由有关)。那么我如何测试这个指令而不看到这些关于不同文件的错误呢?
您必须在jasmine测试中预期所有xhr调用(甚至模板)。最简单的方法是在运行测试之前将所有模板添加到templateCache中。
参见:用templateUrl单元测试AngularJS指令
相关文章:
- Javascript:函数返回意外结果
- “JSON.parse(str)”返回“意外令牌c”,但str是一个字符串
- JavaScript Regexp.test返回意外结果
- 解析JSON返回意外的标识符错误
- JavaScript自定义函数返回意外值
- Webpack require 方法返回意外的对象
- JavaScript unshift 参数返回意外结果
- window.getSelection() 返回意外的值
- jQuery ajax 返回意外的数据类型
- 为什么异步并行回调会返回意外结果
- Jquery offset().left和position().lift返回意外值
- ExtJS ComboBox验证返回意外结果
- ValueIterator.toArray().indexOf()返回意外结果
- JavaScript中的Caesar密码返回意外结果
- 将类添加到返回意外结果的元素
- jQuery addClass()返回意外结果
- 正则表达式javascript返回意外结果
- jQuery正则表达式返回意外结果
- Javascript从随机字符串返回意外日期
- 返回意外的事件监听器结果