小编Cha*_*dra的帖子

如何在angularjs单元测试中触发keyup/keydown事件?

我想单元测试一个模拟占位符的指令,其中输入值仅在keyup/down事件中被清除.

unit-testing jasmine angularjs

33
推荐指数
3
解决办法
4万
查看次数

如何在angularjs中进行单元测试时模拟$ location

这是我的运行块,我rootScope根据位置路径设置了几个属性:

angular.module('xyz').run(['$rootScope', '$location', '$route', function($rootScope, $location, $route){
    $rootScope.brand = $location.path().split('/')[1];
    $rootScope.appName = $rootScope.brand.split('.')[2];
});
Run Code Online (Sandbox Code Playgroud)

这是失败的单元测试:

beforeEach(module('App'));

beforeEach( inject( function( $controller, _$location_, $rootScope) {
    $location = _$location_;
    $scope = $rootScope.$new();
    AppCtrl = $controller( 'AppCtrl', { $location: $location, $scope: $scope });
}));
it('AppCtrl has been initialized', inject( function() {
    expect( AppCtrl ).toBeTruthy();
}));
Run Code Online (Sandbox Code Playgroud)

沿着这些方向尝试了一些事情:

it('should set the default category to match the category_id found in location.hash', function() {
    $browser.setUrl('http://server/#/categories/2');
    $browser.poll();
    scope.$eval();
    $browser.xhr.flush();
    expect(ctrl.selectedCategory).toBe('2'); 
}); 
Run Code Online (Sandbox Code Playgroud)

没有帮助.

unit-testing angularjs

7
推荐指数
1
解决办法
9454
查看次数

标签 统计

angularjs ×2

unit-testing ×2

jasmine ×1