Javascript 我该如何等待;whenGET“;要完成AngularJS/Karma单元测试框架的使用?
如何等待Javascript 我该如何等待;whenGET“;要完成AngularJS/Karma单元测试框架的使用?,javascript,angularjs,jasmine,karma-runner,karma-jasmine,Javascript,Angularjs,Jasmine,Karma Runner,Karma Jasmine,如何等待whenGET()或expectGET()使用AngularJS的单元测试框架Karma/Jasmine来完成 adminController的单元测试: 管理员控制器: 我遇到的问题是这一行: $httpBackend.whenGET('user/rights')。响应(testData\u admin) 正在该行之后运行: var isAdmin=scope.isEnabled(testData\u admin.query.input) 那么,在启用范围函数之前,我如何强制何时运行?
whenGET()
或expectGET()
使用AngularJS的单元测试框架Karma/Jasmine来完成
adminController的单元测试:
管理员控制器:
我遇到的问题是这一行:
$httpBackend.whenGET('user/rights')。响应(testData\u admin)代码>
正在该行之后运行:
var isAdmin=scope.isEnabled(testData\u admin.query.input)代码>
那么,在启用范围函数之前,我如何强制何时运行?
或者如何等待何时运行才能执行何时启用?
以下是我尝试过的:
尝试#1:添加然后
到whenGET
没用。那么说不是一个函数
$httpBackend.whenGET('user/rights').respond(testData_admin).then(function(){
$controller('adminController',{ $scope: scope });
var isAdmin = scope.isEnabled(testData_admin.query.input);
$httpBackend.flush();
expect(isAdmin).toEqual(true);
});
尝试2:使用expectGET
而不是whenGET
当我运行此命令时,我会收到意外的获取请求“用户/权限”
$httpBackend.expectGET('user/rights').respond(testData_admin);
$controller('adminController',{ $scope: scope });
var isAdmin = scope.isEnabled(testData_admin.query.input);
$httpBackend.flush();
expect(isAdmin).toEqual(true); //FAILING
有人知道我该怎么解决这个问题吗
假设whenGET和expectGET没有回调函数
提前谢谢你 试试这个:
describe('http test ( Get user rights details -1 )', function () {
beforeEach(function() {
$httpBackend.whenGET('user/rights').respond(testData_admin);
$controller('adminController',{ $scope: scope });
});
it('admin user should have admin rights enabled (ADMIN)', function() {
var isAdmin = scope.isEnabled(testData_admin.query.input);
expect(isAdmin).toEqual(true); //FAILING
$httpBackend.flush();
});
});
将放置$httpBackend.whenGET('user/rights')。响应(testData\u admin);在Beforeach block帮助中?@JaseemAbbas有相同的错误:/isEnabled之后仍在运行有点奇怪的“whenGET”:/
$httpBackend.expectGET('user/rights').respond(testData_admin);
$controller('adminController',{ $scope: scope });
var isAdmin = scope.isEnabled(testData_admin.query.input);
$httpBackend.flush();
expect(isAdmin).toEqual(true); //FAILING
describe('http test ( Get user rights details -1 )', function () {
beforeEach(function() {
$httpBackend.whenGET('user/rights').respond(testData_admin);
$controller('adminController',{ $scope: scope });
});
it('admin user should have admin rights enabled (ADMIN)', function() {
var isAdmin = scope.isEnabled(testData_admin.query.input);
expect(isAdmin).toEqual(true); //FAILING
$httpBackend.flush();
});
});