mal*_*ana 2 unit-testing jestjs aws-cdk
在CDK 细粒度构造测试中,有什么不同
expect(...).toHaveResource(...)
Run Code Online (Sandbox Code Playgroud)
和
expect(...).toHaveResourceLike(...)
Run Code Online (Sandbox Code Playgroud)
从@aws-cdk/assert/jest模块?
根据此处和此处的代码,唯一的区别是toHaveResource要求传递的键的值必须完全匹配,而toHaveResourceLike实际值可以是参考值的超集。换句话说,如果您试图断言某些属性的值,它本身就是一个对象,并且您只想断言对象的子集,那么您应该使用toHaveResourceLike.
例如,假设您尝试断言您的 S3 存储桶资源具有设置为 true的PublicAccessBlockConfiguration属性BlockPublicPolicy。
你可能会这样写:
test("has public access restricted", () => {
expect(stack).toHaveResource("AWS::S3::Bucket", {
PublicAccessBlockConfiguration: {
BlockPublicPolicy: true,
},
});
});
Run Code Online (Sandbox Code Playgroud)
但这会失败,因为PublicAccessBlockConfiguration还有其他子属性,如BlockPublicAcls. 但是如果你切换toHaveResource到这里,toHaveResourceLike它就会成功。
| 归档时间: |
|
| 查看次数: |
1119 次 |
| 最近记录: |