$routeUpdate未在角因果报应单元测试中广播
$routeUpdate not broadcast in angular karma unit test?
app.js
'use strict';
angular
.module('scrCliApp', [
'ngRoute',
'ui.bootstrap'
])
.config(function ($routeProvider) {
$routeProvider
.when('/search', {
templateUrl: 'views/main.html',
controller: 'MainCtrl',
reloadOnSearch: false
})
.otherwise({
redirectTo: '/search'
});
});
main.js控制器
angular.module('scrCliApp')
.controller('MainCtrl', function ($scope) {
$scope.$on('$routeUpdate', function(/*scope, next, current*/) {
console.log('i was called'); //never logs
});
});
main.js测试
'use strict';
describe('Controller: MainCtrl', function () {
// load the controller's module
beforeEach(module('scrCliApp'));
var MainCtrl,
scope,
rootScope,
location;
// Initialize the controller and a mock scope
beforeEach(inject(function ($controller, $rootScope, $location) {
rootScope = $rootScope;
location = $location;
scope = $rootScope.$new();
MainCtrl = $controller('MainCtrl', {
$scope: scope
});
}));
it('do call', function () {
location.search('q', 'b');
scope.$apply();
});
});
运行测试时,"我被调用了"从不记录。
也许你应该自己广播事件,然后测试如何处理它:
it('do call', function () {
scope.$emit('$routeUpdate', [1,2,3]);
scope.$apply();
expect....
});
相关文章:
- 我的单元测试选项是什么
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 使用量角器的当前url单元测试的getTitle
- AngularJS指令单元测试中未定义的函数
- 如何在ember单元测试中模拟_super()方法
- 单元测试依赖关系没有被嘲笑
- 为什么不'当单元测试出现解析错误时,我的因果报应测试会失败
- 在node.js中编写单元测试的最佳方式是什么
- Ng点击-如何进行行为单元测试
- Jasmine单元测试在监视服务方法时失败
- Angular 2和服务单元测试
- 在我的目录结构中,将单元测试助手源文件放在哪里
- 如何对CSS transitionEnd事件后执行的JavaScript进行单元测试
- 使用Node.js在应用程序引擎上进行本地单元测试
- 我应该如何衡量JS的单元测试覆盖率?我可以'我对jscoverage不满意
- 如何使用KARMA对React JSX ES6代码进行单元测试
- 如何在单元测试中将存储注入Ember.Service
- 单元测试:使用酶模拟父组件中子组件的点击事件
- $routeUpdate未在角因果报应单元测试中广播
- 如何对$scope进行单元测试?广播、美元范围.$on使用Jasmine