我正在尝试在Mean.js中开发一个项目。我已经安装了MEAN.JS并开始进行开发。但在进行了npm测试后,我遇到了一个问题。问题出在登录部分。有人可以帮我这个吗? 下面我提供代码
it('$scope.signin() should login with a correct user and password as user', function () {
// Test expected GET request
$httpBackend.when('POST', '/auth/signin').respond(200, {user: 'chinjubridgit.thomas@gmail.com', token: {logintoken: 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9'}, isadmin: false, status:false});
scope.signin();
$httpBackend.flush();
// Test scope value
expect(scope.authentication.user).toEqual('chinjubridgit.thomas@gmail.com');
expect($cookieStore.get('token')).toBe('Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9');
expect($location.url()).toEqual('/loading');
});
以下提供的是在终端
中运行npm test时得到的错误 PhantomJS 1.9.8 (Linux 0.0.0) AuthenticationController $scope.signin() should login with a correct user and password as user FAILED
Error: Unexpected request: GET modules/admins/views/admin/home-admin.client.view.html
No more request expected at $httpBackend (/home/dev241/projects/mean/yourcause/public/lib/angular-mocks/angular-mocks.js:1181)
at sendReq (/home/dev241/projects/mean/yourcause/public/lib/angular/angular.js:8427)
at /home/dev241/projects/mean/yourcause/public/lib/angular/angular.js:8146
at /home/dev241/projects/mean/yourcause/public/lib/angular/angular.js:11682
at /home/dev241/projects/mean/yourcause/public/lib/angular/angular.js:11768
at /home/dev241/projects/mean/yourcause/public/lib/angular/angular.js:12811
at /home/dev241/projects/mean/yourcause/public/lib/angular/angular.js:12623
at /home/dev241/projects/mean/yourcause/public/lib/angular-mocks/angular-mocks.js:1454
at /home/dev241/projects/mean/yourcause/public/modules/users/tests/authentication.client.controller.test.js:72
at /home/dev241/projects/mean/yourcause/node_modules/karma-jasmine/lib/boot.js:126
at /home/dev241/projects/mean/yourcause/node_modules/karma-jasmine/lib/adapter.js:171
at http://localhost:9876/karma.js:182
at http://localhost:9876/context.html:175
PhantomJS 1.9.8 (Linux 0.0.0): Executed 11 of 11 (1 FAILED) (0.011 secs / 0.172 secs)
答案 0 :(得分:3)
这个问题可以通过添加
来解决 $httpBackend.when('GET', /\.html$/).respond('');
触发登录功能后
it('$scope.signin() should login with a correct user and password as user', function () {
// Test expected GET request
$httpBackend.when('POST', '/auth/signin').respond(200, {user: 'chinjubridgit.thomas@gmail.com', token: {logintoken: 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9'}, isadmin: false, status:false});
scope.signin();
$httpBackend.when('GET', /\.html$/).respond('');
$httpBackend.flush();
// Test scope value
expect(scope.authentication.user).toEqual('jenson.raby@cubettech.com');
expect($cookieStore.get('token')).toBe('Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9');
expect($location.url()).toEqual('/loading');
});