测试对象的功能是否在玩笑中另一个功能内被调用

时间:2019-11-05 21:18:27

标签: javascript jestjs

我的代码看起来像这样:

Class A :{
    Object foo = new foo;
    function (){
        ...
        let var = this.foo.bar()
        ...
}

我想开玩笑地测试foo.bar()已被调用。我已经尝试过

barSpy = jest.spyOn(function, 'foo.bar');

但是它不起作用,有人可以指导我采用好的语法吗?

1 个答案:

答案 0 :(得分:1)

jest.spyOn的参数是包含要监视的功能的对象,以及要监视的功能的名称(请参阅:https://jestjs.io/docs/en/jest-object.html#jestspyonobject-methodname)。上面给出的语法很难说,但是如果foo可以作为A实例的属性(对于本例,假设您的实例称为a),那么a.foo是对象,而'bar'是函数的名称。

这里有一些代码可以更好地说明:

class A {
    constructor() {
        this.foo = new foo();
    }

    function myFunction() {
        ...
        this.foo.bar();
        ....
    }
}

...

let a = new A();
let barSpy = jest.spyOn(a.foo, 'bar');