角度事件侦听器未出现在测试中
Angular event listener not appearing in tests
假设我有一个指令:
angular.module('foo').directive('myDir', function () {
return {
restrict: 'E',
link: function (scope) {
var watcher = scope.$watch('foo, function () {});
scope.$on('$destroy', function () {
watcher();
});
}
}
})
然后进行以下测试:
describe('myDir', function () {
beforeEach(function () {
module('foo');
inject(function($compile, $rootScope) {
var scope = $rootScope.$new();
$compile('<my-dir></my-dir>')(scope);
scope.$digest();
});
});
it('listens for destroy', function () {
expect(scope.$$listeners.$destroy).to.not.equal(undefined);
});
});
以下情况失败:Error: expected undefined to not equal undefined
奇怪的是,如果我在expect
之前直接console.log(scope.$$listeners.$destroy)
,日志会显示一个函数数组,而不是未定义的,但测试仍然失败。
是什么导致侦听器对断言不可见?有好的变通办法吗?
从.to.not.equal
更改
至
not.to.be
修复了的问题
相关文章:
- 模糊事件的Javascript测试
- node.js测试事件是否是在不使用超时的情况下使用sinon.js发出的
- 如何测试主干视图是否正确侦听特定事件
- 如何对CSS transitionEnd事件后执行的JavaScript进行单元测试
- 单元测试:使用酶模拟父组件中子组件的点击事件
- 正在测试主干事件哈希
- 如何在Jasmine/Rect中测试带有范围输入的“onChange”事件
- 我应该如何在backbone.mariente中测试/监视此类事件
- 使用 Jasmine 测试对象中的事件处理程序
- 测试 JavaScript Zombie 事件处理程序或 DOM 元素
- 如何测试指令是否发出事件
- Node.js+Mocha+Should.js如何测试事件发射器抛出的错误
- 更好的是:测试事件处理程序是否绑定或直接使用 .off()
- 使用jquery测试事件序列
- 监视/测试事件处理程序上的触发器是否使用Chai工作
- 使用Jasmine在对象上测试事件处理程序
- 用于给定选择器的nodeList的Jasmine测试事件监听器函数
- 在IE中单元测试事件处理程序
- 用Sinon Js测试事件触发后调用的回调
- 如何使用QUnit测试事件侦听器