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 的评论。这种方式不太好测试...