Jasmine:有没有办法模拟本地使用的服务?
Jasmine: Is there a way to mock a locally used service?
我是 Angular 和 Jasmine 测试的新手,所以我正在尝试检查此方法是否正常工作,但我需要模拟 XmlReaderService
,它仅在本地使用,怎么可能我嘲笑这个?我期待 spyOn
的东西,但我无法理解它...
private getElementSettings() {
const xmlReader = new XmlReaderService(this.logger)
xmlReader.requestXml(this.xmlServiceUrl + this.settingsFileName).then(() => {
this.elementSettings = xmlReader.xmlJsoned['element_settings']
this.getElementTypes()
this.getElementList()
this.getMonitors()
}).catch((reason) => {
this.logger.error('XML Request failed in getElementSettings()!')
this.logger.info(reason, '[' + this.constructor.name + ']')
this.delegate.errorCallback(650, 'XML Request failed - could not get smart home element definitions (ElementSettings.xml)', reason)
})
}
参见上面@AliF50 的评论。这种方式不太好测试...
我是 Angular 和 Jasmine 测试的新手,所以我正在尝试检查此方法是否正常工作,但我需要模拟 XmlReaderService
,它仅在本地使用,怎么可能我嘲笑这个?我期待 spyOn
的东西,但我无法理解它...
private getElementSettings() {
const xmlReader = new XmlReaderService(this.logger)
xmlReader.requestXml(this.xmlServiceUrl + this.settingsFileName).then(() => {
this.elementSettings = xmlReader.xmlJsoned['element_settings']
this.getElementTypes()
this.getElementList()
this.getMonitors()
}).catch((reason) => {
this.logger.error('XML Request failed in getElementSettings()!')
this.logger.info(reason, '[' + this.constructor.name + ']')
this.delegate.errorCallback(650, 'XML Request failed - could not get smart home element definitions (ElementSettings.xml)', reason)
})
}
参见上面@AliF50 的评论。这种方式不太好测试...