模拟用作服务属性的类

时间:2017-12-11 20:07:38

标签: angular testing ionic-framework mocking

我实际上正在开发一个Ionic应用程序。在这个上下文中,我实现了一个AlertService类,它具有以下两个属性:

messageAlert: Alert;
errorAlert: Alert;

Alert类是Ionic框架之一,所以我对它没有任何控制权。我的想法是通过类似下面的类的自制模拟来模拟Alert类:

class AlertMock {
    opts:       Object;
    presented:  boolean;

    constructor(opts) {
        this.opts       = opts;
        this.presented  = false;
    }

    present() {
        this.presented  = true;
    }

    dismiss() {
        this.presented  = false;
    }
}

它允许我通过检查presented属性的值来简单地测试警报状态。

但是,我如何向AlertService表明它有两个Alert属性类型为AlertMock?我不知道是否有可能。但在我看来,能够像这样模拟类是非常基本的。我找到的每个主题都谈到了嘲弄服务。使用DI,将类型替换为另一个类型非常简单,但有没有任何机制可以使用Ionic框架的Alert之类的简单类来完成它?

1 个答案:

答案 0 :(得分:0)

导入并延伸var list1 = new List<int>(); list1.Add(100); var temp = "ABC"; bool foundOne = false; foreach( var i in list1) { if (i == 200 || temp == "ABC") { foundOne = true; break; } } // what value has foundOne here if the list has 0 elements or 1 elemnt? 中的Alert

AlertMock

import { Alert } from ... class AlertMock extends Alert { opts: Object; presented: boolean; constructor(opts) { this.opts = opts; this.presented = false; } present() { this.presented = true; } dismiss() { this.presented = false; } }

AlertService