我的代码看起来像这样:
Class A :{
Object foo = new foo;
function (){
...
let var = this.foo.bar()
...
}
我想开玩笑地测试foo.bar()已被调用。我已经尝试过
barSpy = jest.spyOn(function, 'foo.bar');
但是它不起作用,有人可以指导我采用好的语法吗?
答案 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');