【发布时间】:2018-07-17 11:24:19
【问题描述】:
原创服务
getVersionDataValuesforPopup(Docversion, versionname, Structureweek, docVersionFieldID, versionid, WLTP) {
return this.http.get(this.apiUrl + 'GetElementPopUpData?docVersion=' + Docversion + '&versionVariant=' + versionname
+ '&structureWeek=' + Structureweek + '&docVersionFieldID=' + docVersionFieldID
+ ' &VersionId=' + versionid + ' &isWLTP=' + WLTP, { withCredentials: true })
.toPromise().then(responce => <CoCCreateVersionPopupPage[]>responce.json())
.catch(error => {
return error;
});
}
在组件中调用原始服务
this.createversionservice.getVersionDataValuesforPopup(this.cocviewversiondatapage.docVersion,
this.cocviewversiondatapage.VersionDescriptions,
this.cocviewversiondatapage.structWeek, dataitems.DocumentVersionFieldId, this.cocviewversiondatapage.Id,
this.cocviewversiondatapage.WLTP)
.then(
data=> { ...});
通过constructor injection模拟服务
getVersionDataValuesforPopup(Docversion, versionname, Structureweek, docVersionFieldID, versionid, WLTP) {
return Observable.of({ Result: {} });
}
我在测试方法时遇到错误
TypeError: this.createversionservice.getVersionDataValuesforPopup(...).then 不是函数
我知道错误的原因,我在我的模拟服务中使用Observable,但真正的服务有promise,所以回调不支持。请让我知道如何为@编写模拟服务987654327@承诺服务电话。
【问题讨论】:
-
我会建议这样的事情:
return new Promise((resolve) => { resolve(null); }); -
我需要为此导入什么??
-
您无需导入任何内容。
-
@Nour 是的。这对我有用。您能否将其发布为答案。我会标记为正确答案
-
很高兴为您提供帮助 :)
标签: angular unit-testing typescript jasmine observable