控制器方法在 AngularJs 中使用 Karma 调用 Jasmine 单元测试套件
Controller methods call Jasmine unit test suite with Karma in AngularJs
我对Karma和Jasmine很陌生,我用它来为我的AngularJs应用程序编写单元测试。
在运行测试套件时,默认情况下会调用我为初始化控制器中的数据而调用的函数。在运行测试套件时,有什么方法可以避免此调用?
在下面找到代码片段:
BaseCtrl.js
App.controller('BaseCtrl', ['$scope', '$rootScope', 'Data', function($scope, $rootScope, Data){
//initialize
$rootScope.loader = false;
$rootScope.data = false;
$scope.init = function(){
$rootScope.loader = true;
Data.init(function(data){
$rootScope.loader = false;
$rootScope.data = data;
});
};
$scope.init();
}])
Data.js
App.service('Data', ['$http', function($http){
return {
init:function(callback){
$http.get('/url').success(function(response){
callback(response);
});
}
};
}]);
BaseCtrl.spec.js
describe('BaseCtrl', function(){
beforeEach(module('app'));
var $controller, $rootScope, $scope;
beforeEach(inject(function(_$controller_, _$rootScope_){
$controller = _$controller_;
$rootScope = _$rootScope_.$new();
}));
describe('Loader', function(){
var controller, $scope = {};
beforeEach(function(){
controller = $controller('BaseCtrl', {$scope:$scope, $rootScope:$rootScope});
});
it('should be false by default', function(){
// Check the default value
expect($rootScope.loader).toBe(false);
// Some code to determine the call, then
expect($rootScope.loader).toBe(true);
// Some code to determine the call is done, then
expect($rootScope.loader).toBe(false);
});
});
});
是的,使用 $httpBackend
创建一个模拟并返回您想要的任何内容。
$httpBackend.when('GET', '/url').respond({});
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何从Java/scala调用js美化程序
- 如何调用这个匿名 JavaScript 函数
- 如何从模块链中调用函数.导出到节点中
- 我需要从php调用javascript或jquery
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- node.js:setInterval()正在跳过调用
- 如何在单击复选框后调用控制器方法
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 使用Google Visualization动态调用构造函数
- 从 Karma 和 Jasmine 测试调用控制器函数
- 控制器方法在 AngularJs 中使用 Karma 调用 Jasmine 单元测试套件
- 获得404关于使用karma和jasmine对json文件进行ajax调用的自定义实现
- Karma-Jasmine:如何正确测试http调用
- Jasmine/Karma HTTP没有像预期的那样被嘲笑(REST调用上的Angular Controller)
- 如何用Jasmine在Angular应用程序中模拟d3.json()调用,用Karma任务运行器进行测试