0
$httpBackend
を嘲笑して$http
サービスを使用するメソッドをテストしようとしています。私の方法は、私のアプリケーションで正常に動作しますが、私は動作するようにテストを取得することはできません。私は私のアプリサービスが上で実行しているとき、これは動作します - ここ
describe("authHelper", function() {
var webHelper;
var url;
var $httpBackend;
beforeEach(function(){
pingResponse = {
principal: null,
authenticated: false,
servlet:true,
timestamp:1468325333070
};
angular.mock.module('provisioning');
inject(function ($injector) {
webHelper = $injector.get('webHelper');
url = webHelper.buildUrl('/ping');
$httpBackend = $injector.get('$httpBackend');
$httpBackend.whenGET(webHelper.buildUrl('/ping')).respond(200, pingResponse);
});
});
it("should pass if setup is correct", inject(function(authHelper) {
expect(true).toBe(true);
console.log(url);
authHelper.isAuthenticated().then(
function(data){ alert(data); },
function(data){ alert(data); }
);
}));
は私がテストしてい方法である:ここで私はどんな結果を得ることはありません(動作しないテストコードがあり、URLが正しいですサーバーが、モックが動作していない私は正常に動作10回の他のテストを持っていますが、模擬作業を取得するように見えることができない私はURLがコンソールにログインして見るが、それはそれだ:。。
var isAuthenticated = function(){
var d = $q.defer();
$http.get(webHelper.buildUrl('/ping')).then(function(data){
console.log("isauth got");
console.log(data);
if(data.data.authenticated){
d.resolve(true);
} else {
d.resolve(false);
}
}, function(errorData){
console.log("Error");
console.log(errorData);
d.resolve(false);
});
return d.promise;
};