如何检查一个方法是否在另一个方法被调用之前被调用
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。它有 calledAfter
和 calledBefore
。
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));
});
我有一个名为 mainMethod()
的方法,它 returns 是一个承诺。
这个方法包含几个方法m1()
,m2()
...,m5()
。
现在我正在使用 sinon
、
我想检查 m1()
是否被调用,m2()
是否被调用 未。
因为我有一个数组,在调用 m1()
之后 不为空 但在 m2()
之后它 将为空 =] 被调用。
我想在调用 m1()
之后和调用 m2()
之前进行检查或测试。
是否可以使用 sinon
?
是的,可以使用 Sinon。它有 calledAfter
和 calledBefore
。
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));
});