程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何使用 Jasmine 模拟 Angular 的“LocationChangeListener”接口?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何使用 Jasmine 模拟 Angular 的“LOCATIOnChangeListener”接口??

开发过程中遇到如何使用 Jasmine 模拟 Angular 的“LOCATIOnChangeListener”接口?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何使用 Jasmine 模拟 Angular 的“LOCATIOnChangeListener”接口?的解决方法建议,希望对你解决如何使用 Jasmine 模拟 Angular 的“LOCATIOnChangeListener”接口?有所启发或帮助;

我在尝试使用 Jasmine 模拟 Angular 的 LOCATIOnchangelistener 接口时遇到了麻烦。

这是我的代码所做的:

      onPopState(fn: LOCATIOnchangelistener): voID {
        this.platformLOCATIOn.onPopState((ev: LOCATIOnChangeEvent): voID => {
    
        ... here I do the stuff I actually want to test ...
    
      }
    }

所以基本上,我尝试使用 LOCATIONchangelistener 调用 onPopState,这样我就可以测试函数内部的所有逻辑。 我已经嘲笑了 LOCATIOnChangeEvent

      const LOCATIOnChangeEventmock: LOCATIOnChangeEvent = {
        type: 'typemock',state: 1,};

但是我所有模拟 LOCATIOnchangelistener 的努力都是徒劳的...这真的可能吗?由于 TypeScript 的接口“问题”?

编辑:经过一些调试,看起来 ev: LOCATIOnChangeEvent 不是来自 LOCATIOnchangelistener(显然),所以我需要,不知何故,触发LOCATIOnChangeEvent

到现在为止,我对它进行了一些代码重构:将我想要的代码提取到一个方法中,然后调用该方法......但仍然好奇如何测试它。

解决方法

可能,您可以像这样传递一个空的 cb 函数作为模拟:

updateData(form: IOpportunitySearch){
  ...
  this.storeservice.onSetAllOpportunitiesSearch(form);  //this sets the store with the user's SELEcted properties
  this.dataservice.searchOpportunities(form).subscribe(data => {

它应该是有效的。

大佬总结

以上是大佬教程为你收集整理的如何使用 Jasmine 模拟 Angular 的“LocationChangeListener”接口?全部内容,希望文章能够帮你解决如何使用 Jasmine 模拟 Angular 的“LocationChangeListener”接口?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。