我有abstract
类,其实施的protected
方法很少,abstract
方法很少。
我正在尝试为protected
方法编写一些测试。
由于即使在外部世界的扩展类中也没有这些,我想创建anonymous Test class
,它可以扩展和验证/模拟我的东西。
export abstract class AbsClass implements AbsInterface {
protected extract(filter: string) {
//some implemented code to test
}
abstract someMethod();
}
我无法弄清楚如何创建类似anonymously
export class TestClass extends AbsClass {
public testExtract(){
//call super.extract and verify result
}
}
答案 0 :(得分:1)
我之前遇到过这种情况。似乎导出/抽象关键字相互干扰。我必须定义类,然后在另一行上导出以解决这个问题。
示例:
abstract class BaseClass {}
export default BaseClass
答案 1 :(得分:0)
this related issue中讨论了一些解决方法。另请参阅:
简短的回答是,现在很难代表匿名类来访问其超类的私有/受保护成员。如果您只是想测试超类的一部分,那么实现类是否真的必须是匿名的?
(顺便说一句:我通常在测试方面还很陌生,但是我已经看到很多关于不显式测试私有/受保护方法的强烈建议。最好测试调用该方法的公共API方法私人/受保护的人?)