无法 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
调用。
这不仅允许您告诉测试期望像 $httpBackend.expectGET();
这样的 $http
调用方法,而且还允许您使用 $httpBackend.flush();
模拟调用和强制摘要,甚至模拟响应。
示例代码:
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
调用。
这不仅允许您告诉测试期望像 $httpBackend.expectGET();
这样的 $http
调用方法,而且还允许您使用 $httpBackend.flush();
模拟调用和强制摘要,甚至模拟响应。