我有一个像下面这样的类:
export class AbstractClass extends cdk.Stack {
constructor(scope: Construct, id: string, props: SomeProps) {
super(scope, id, props);
...
...
}
}
另一个类是扩展上面的类:
export class MyLambdaStack extends AbstractClass {
constructor(scope: Construct, id: string, props: SomeProps) {
super(scope, id, props);
...
...
}
}
我正在尝试编写MyLambdaStack
类的单元测试。
这是单元测试(MyLambdaStack.test.ts
):
describe("AskEC2 Health Monitor Lambda Stack", () => {
const app = new App();
const props: SomeProps = {...};
const myLambdaStack = new MyLambdaStack(app, `test-id`, props);
test("Placeholder test", () => {});
}
我一直在出错:
TypeError: MyLambdaStack_1.MyLambdaStack is not a constructor
我相信这个错误是由于课程被延长。如果我创建一个扩展cdk.Stack的AbstractClass
示例,一切都可以正常工作。
知道怎么修吗?
1条答案
按热度按时间o75abkj41#
我不能复制你的错误。Stack继承模式在理论上没有什么不可行的,你的代码也没有任何明显的错误。
工作示例:
请注意,如果目标是资源代码重用,CDK建议组合Construct子类而不是Stack继承:
当从多个AWS资源构建应用程序的高级逻辑单元时,请将每个逻辑单元表示为Construct,而不是Stack。通过使用构造进行构建,使用堆栈进行部署,您可以提高基础设施的重用潜力,并在如何部署基础设施方面给予更大的灵活性。