如何检查一个方法是否在另一个方法被调用之前被调用

How to check if a method is called before another one got called

我有一个名为 mainMethod() 的方法,它 returns 是一个承诺。 这个方法包含几个方法m1(),m2()...,m5()。 现在我正在使用 sinon

进行单元测试

我想检查 m1() 是否被调用,m2() 是否被调用

因为我有一个数组,在调用 m1() 之后 不为空 但在 m2() 之后它 将为空 =] 被调用。

我想在调用 m1() 之后和调用 m2() 之前进行检查或测试。

是否可以使用 sinon

是的,可以使用 Sinon。它有 calledAftercalledBefore

http://sinonjs.org/releases/v6.1.3/spies/

例如

it('some testing', function() {
    var m1 = { method: function () {} };
    var m2 = { method: function () {} };

    var spyM1 = sinon.spy(m1, "method");
    var spyM2 = sinon.spy(m2, "method");

    m1.method(42);
    m2.method(1);

    assert(spyM1.calledBefore(spyM2));
    assert(spyM2.calledAfter(spyM1));
});