下面是一些例子,但是要明白我的问题......
超级课程:
class Parent {
constructor(a) {
this._a = a;
}
doSomething() { ... implementation... }
}
子类:
class Child extends Parent {
constructor() {
super('a');
}
doSomethingElse() { return super.doSomething(); }
}
我在Angular中使用这些类,所以Parent类是DI提供给提供Child类的工厂,如下所示:
function ChildDeps(Parent) {
return class Child extends Parent {
... Child class implementation here ...
};
}
ChildDeps.$inject = ['Parent']
天真地,我在每个条款之前首先尝试了类似的东西:
beforeEach(module($provide => {
parent = {
doSomething: jasmine.createSpy('parent.doSomething')
};
Parent = jasmine.createSpy('Parent').and.returnValue(parent);
$provide.value('Parent', Parent);
}));
但这不起作用......说间谍父母'从来没有打过电话。
目前正在使用茉莉花/业力进行测试。怎么可以嘲笑/谍超级课程,这样我就可以对父母的课程做出什么样的期待?调用构造函数并调用super.doSomething
函数?
谢谢!