首页 > 解决方案 > 如何在调用另一个方法之前检查一个方法是否被调用

问题描述

我有一个调用的方法mainMethod(),它返回一个承诺。此方法包含几种方法m1()m2()...,m5()。现在我正在使用sinon

我想检查是否m1()调用和m2()未被调用。

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

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

可以使用sinon吗?

标签: javascriptsinonava

解决方案


是的,可以使用诗乃。它有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));
});

推荐阅读