Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我该如何等待;whenGET“;要完成AngularJS/Karma单元测试框架的使用?_Javascript_Angularjs_Jasmine_Karma Runner_Karma Jasmine - Fatal编程技术网

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();
     });
});