无法 SpyOn htpp.get 方法

Unable to SpyOn htpp.get method

示例代码:

if (!this.scope.popupHtmlTemplate) {
    this.$http.get("widgets/pinpointcomponent/browseLibraries/resources/browseLibrariesDialogModal.html")
    .success((data: any) => {
        console.log("Inside success"+data)
        if (data) {
            this.generateBootBoxDialog(data);
            this.scope.popupHtmlTemplate = data;
        }
    });
} else {
    this.generateBootBoxDialog(this.scope.popopupHtmlTemplate)
}

测试用例:

it("test expandLibrary case 3", () => {
    spyOn(http, "get");
    controller.showBrowseLibrariesDialog();
     expect(http.get).toHaveBeenCalled();
});

得到

TypeError: undefined is not a constructorevaluating 'spyOn(http, "get")) error.

为此编写测试用例的任何可能方法。

例如,您正在监视未定义的 http 服务,而不是 $http。为了更深入地挖掘,您想要使用来自 ngMocks$httpBackend 来模拟那些 $http 调用。

AngularJS: API: $httpBackend

这不仅允许您告诉测试期望像 $httpBackend.expectGET(); 这样的 $http 调用方法,而且还允许您使用 $httpBackend.flush(); 模拟调用和强制摘要,甚至模拟响应。