Jest.js 如何模拟并知道父类的方法是否被调用?

xxls0lw8  于 2022-12-08  发布在  Jest
关注(0)|答案(1)|浏览(254)

我要考下一堂课:

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的模拟来修改它的行为?提前感谢

hgqdbh6s

hgqdbh6s1#

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 });
    });
});

相关问题