我现在正在努力工作几个小时,不能只是弄清楚我的代码是什么问题 我的服务:
(function(){
'use strict';
angular
.module('app')
.factory('register', register);
register.$inject = ['$http'];
function register($http){
var service = {
post: post
};
return service;
/////////////////////
function post(data){
return $http.post('/user/register', data)
.then(registerSuccess)
.catch(registerError);
function registerSuccess(response){
return response;
}
function registerError(error){
return error;
}
}
}
})();
和spec文件
describe('Register service', function(){
beforeEach(module('app'));
var service;
beforeEach(inject(function($http, $httpBackend, _register_) {
http = $http;
httpBackend = $httpBackend;
service = _register_;
}));
it('check if register service exist', function(){
expect(service).toBeDefined();
expect(service.post()).toBeDefined();
});
it('rrrr', function(){
httpBackend.expectPOST('/user/register', {u: 'xyz', password: 'pass' })
.respond(200, {'status': 'success'});
service.post({u: 'xyz', password: 'pass' })
.then(function(data){
expect(data.status).toBe(200);
});
httpBackend.flush();
});
});
如果有人可以帮我理解为什么会出现这个错误
Error: Unexpected request: GET src/app/user/user.html
谢谢...
答案 0 :(得分:1)
应用程序正在使用XHR请求获取路由/组件/指令的模板。解决此问题的最佳方法是使用$templateCache
。
您可以将this preprocessor与业力结合使用,将模板放入缓存中。
有关详细信息,请参阅this answer。
答案 1 :(得分:0)
最简单的解决方案是使用 RegExp('。*。html'):
//setup backend so all .html requests get an 200 response
httpBackend
.whenGET(new RegExp('.*.html'))
.respond(function(){ return [200, 'XXX', {}] });
//setup spec specific behavior
httpBackend
.expectPOST('/user/register', {u: 'xyz', password: 'pass' })
说明:
这样可以确保所有.html GET请求都以200状态响应进行回答。
这也会使您的“意外请求”错误消失。
希望它有所帮助。