了解Sinon间谍:调用间谍包装方法会怎样?

时间:2018-07-29 09:59:23

标签: javascript unit-testing sinon

当我将类的方法包装到Sinon间谍中时,

sinon.spy(myObject, "myMethod")

间谍内部会发生什么?

我想间谍对象有一个指向“ myObject.myMethod”的引用。

调用该方法后会发生什么?

我知道间谍会记录有关调用的信息,例如调用时间,使用的参数等。

但是myMethod 真的会被调用吗?

我的意思是:进一步将间谍对象传递给调用吗? 间谍对象是否充当代理?还是仅记录信息?

1 个答案:

答案 0 :(得分:1)

通过一个简单的测试,似乎sinon spy确实调用了原始方法:

navigation.setItemIconTintList(Color.parseColor("#fafafa"));

the docs中也是如此:

  

sinon.spy(object,“ method”)创建一个间谍,该间谍包装了现有的函数object.method。 间谍的行为将与原始方法完全相同(包括用作构造函数时),但是您将有权访问有关所有调用的数据。