Ionic 3x:单元测试,模拟默认控制器

时间:2017-05-25 08:43:30

标签: angular unit-testing typescript ionic-framework ionic3

我正在编写一个Ionic应用程序并对代码内部进行测试。我有example,这非常有帮助。但我正在使用Geolocation或Loading Controller之类的其他东西作为我的功能,我不知道应该如何模仿它们。例如,我在.spec.ts

中提供

{ provide: LoadingController, useClass: LoadMock }

但我不知道应该提供什么(哪种类型和数据)。错误日志特别没有意义。我应该在这里提供装载控制器的例子。它有方法:创建,呈现和解散。

export class LoadMock {

    public create(): type??? {
        return what???
    }

    public present(): type??? {
        return what???
    }

    public dismiss(): type??? {
        return what???
    }
}

1 个答案:

答案 0 :(得分:2)

这完全取决于您在代码中使用这些组件的方式。例如,如果你有这样的东西

let loading = this.loadingCtrl.create({
  content: 'Please wait...'
});

loading.present();

this.getData().then(data => {
  // Do something
  loading.dismiss();
});

present()dismiss()不需要返回任何内容,因为忽略了返回值。 create()应返回包含函数present()dismiss()的内容。

因此,模拟的LoadingController可能看起来像这样

export class LoadingMock {

  public create(): any {
    return new LoadingMock;
  }

  public dismiss(): any {}

  public present(): any {}
}