typescript - 模拟一个班级,然后开玩笑地取消模拟它
问题描述
我在 typescript 中有一个 cdk 项目,我正在尝试为第一个 app.ts 编写单元测试。所以下面是它的示例代码 -
import * as cdk from '@aws-cdk/core';
export class MyApp extends cdk.App {
constructor() {
super();
const sharedContext = this.node.tryGetContext('shared');
const myProjectName = sharedContext['projectName'];
// some more functionality
//create stack
}
}
const app = new MyApp();
app.synth();
问题是当在我的测试文件中,即 app.test.ts 我正在导入时 -
import { MyApp } from '../app';
import * as cdk from '@aws-cdk/core';
describe('app', () => {
let mockedcontext: jest.SpyInstance<any, unknown[]>;
const expectedSharedcontext = {
projectName: 'exampleSharedContext',
};
beforeEach(() => {
mockedcontext = jest
.spyOn(cdk.ConstructNode.prototype as any, 'tryGetContext')
.mockReturnValue(expectedSharedcontext);
Object.defineProperty(MyApp.prototype, 'sharedContext', { value: expectedSharedcontext });
new MyApp();
});
afterEach(() => {
jest.resetAllMocks();
});
test('constructor', () => {
expect(mockedcontext).toHaveBeenCalledTimes(1);
});
});
它也在底部导入新对象的创建,因此我的模拟都没有测试app.ts。知道如何测试 MyApp 类的功能。
解决方案
推荐阅读
- r - Anova: 警告: 总之.rq(x, se = se, covariance = TRUE) : 2 non-positive fis
- c++ - 64 位平台上的 WinAPI IcmpSendEcho
- flutter - Flutter – 连续两个文本,左边一个优雅地溢出
- android - Glide for Android - 没有发出 URL 请求,也不例外
- firebase - 如何区分活跃用户和非活跃用户
- sikuli - 如何在 sikuli 脚本中实现链式搜索
- excel - Excel TFS 加载项连接到 TFS 时崩溃
- windows - Windows UWP:单进程后台蓝牙任务未触发
- java - 在java中执行“fetchall”语句的更好方法是如何在json响应中进行转换?
- html - 发布缩略图未显示在主页上并出现错误
有人可以帮忙吗?缩略图未显示在我的博客文章中,并且在检查元素中显示以下错误:找不到标签的替换 [post.thumbnailUrl]
我尝试了我的方法,但我无法成功。
如何根据