如何模拟并知道父类的方法是否已被调用



我想测试下一个类:

class B extends A {
getOptions(params) {
const options = super.getOptions(params);
return {...options, newProperty: "newProperty"}
}
}

例如:

const instanceB= new B();
instanceB.getOptions({})

我如何知道是否调用了super.getOptions(params),以及如何使用Jest通过mock修改它的行为?提前感谢

const A = require("./A");
const B = require("./B");
describe("...", () => {
it("...", async () => {
const instanceB = new B();
const getOptionsSpy = jest
.spyOn(A.prototype, "getOptions")
.mockResolvedValue({ foo: 1 });
const result = await instanceB.getOptions({ bar: 2 });
expect(getOptionsSpy).toHaveBeenCalled();
expect(result).toEqual({ foo: 1, bar: 2 });
});
});

最新更新