Как заменить javascript метод суперкласса для тестирования? - PullRequest
0 голосов
/ 16 октября 2019

Я хочу протестировать метод '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

1 Ответ

0 голосов
/ 16 октября 2019
element.constructor.__proto__.prototype.foo = () => {
                        console.log('This is a mock of super foo');
                    };
...