首页 > 解决方案 > 如何替换超类的javascript方法进行测试?

问题描述

我想测试一个调用其超级方法'foo'的方法'foo':

foo(){
     super.foo();
     //do some extra stuff
}

如果它会引用同一类的另一个方法,例如

foo(){
     this.baa();
     //do some extra stuff
}

...我可以简单地替换 baa 方法进行测试,例如

element.baa = () => { console.log('This is a mock of baa')};
element.foo();

expect(effectsOfFoo).toBe(Ok).

但是,如何替换超级方法'foo'?

也许像

element.constructor.getSuperClass().foo = () => { console.log('This is a mock of super foo')};

但是,我还没有设法获得超级课程。

相关问题:

在 es6 中监视/模拟超类方法

标签: javascripttestingsuper

解决方案


element.constructor.__proto__.prototype.foo = () => {
                        console.log('This is a mock of super foo');
                    };

推荐阅读