ユニットテストにJestを使用しているときに邪魔なエラーが発生しました。Jestがオブジェクトにスパイすることができない
問題:は内部オブジェクトのメソッド
場合にアクセスしないでください冗談は:私たちは、直接Bメソッドを呼び出した場合、およびb()
方法とlol
オブジェクトがあります冗談私たちがlol.b()
と呼んでも失敗します。
誰かがすでにこの問題に遭遇しましたか?より良い回避策がありますか?
コード:
describe('Jest bug',() => {
it('Jest fail',() => {
const lol = (() => {
const a =() => {
console.log("console a");
b();
};
const b =() => {
console.log("console b");
};
return {
a,
b
};
})();
const spy = jest.spyOn(lol, 'b');
lol.a();
expect(spy).toHaveBeenCalled()
});
it('Jest success',() => {
const lol = (() => {
const a =() => {
console.log("console OK a");
lol.b();
};
const b =() => {
console.log("console OK b");
};
return {
a,
b
};
})();
const spy = jest.spyOn(lol, 'b');
lol.a();
expect(spy).toHaveBeenCalled()
});
});